| ofs | hex dump | ascii |
|---|
| 0000 | 61 2d 32 30 32 31 30 39 32 39 2e 31 35 31 30 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | a-20210929.1510/................ |
| 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 31 32 33 30 00 20 35 00 00 00 | 0000000.00000000000.011230..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 | 61 2d 32 30 32 31 30 39 32 39 2e 31 35 31 30 2f 61 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 | a-20210929.1510/a-pkg.el........ |
| 0220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 37 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 35 36 30 00 20 30 00 00 00 | 0000674.00000000000.012560..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 61 22 20 22 32 30 32 31 30 39 32 39 2e 31 35 | (define-package."a"."20210929.15 |
| 0420 | 31 30 22 20 22 41 73 73 6f 63 69 61 74 69 76 65 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 20 | 10"."Associative.data.structure. |
| 0440 | 66 75 6e 63 74 69 6f 6e 73 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 35 22 29 29 0a 20 20 3a | functions"...'((emacs."25"))...: |
| 0460 | 63 6f 6d 6d 69 74 20 22 39 61 64 32 64 31 38 32 35 32 62 37 32 39 31 37 34 66 65 32 32 65 64 30 | commit."9ad2d18252b729174fe22ed0 |
| 0480 | 62 32 62 37 36 37 30 63 38 38 66 36 30 63 33 31 22 20 3a 61 75 74 68 6f 72 73 0a 20 20 27 28 28 | b2b7670c88f60c31".:authors...'(( |
| 04a0 | 22 41 72 6e 65 20 42 72 61 73 73 65 75 72 22 20 2e 20 22 61 72 6e 65 40 61 72 6e 65 62 72 61 73 | "Arne.Brasseur"..."arne@arnebras |
| 04c0 | 73 65 75 72 2e 6e 65 74 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28 28 | seur.net"))...:maintainers...'(( |
| 04e0 | 22 41 72 6e 65 20 42 72 61 73 73 65 75 72 22 20 2e 20 22 61 72 6e 65 40 61 72 6e 65 62 72 61 73 | "Arne.Brasseur"..."arne@arnebras |
| 0500 | 73 65 75 72 2e 6e 65 74 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 0a 20 20 27 28 22 41 | seur.net"))...:maintainer...'("A |
| 0520 | 72 6e 65 20 42 72 61 73 73 65 75 72 22 20 2e 20 22 61 72 6e 65 40 61 72 6e 65 62 72 61 73 73 65 | rne.Brasseur"..."arne@arnebrasse |
| 0540 | 75 72 2e 6e 65 74 22 29 0a 20 20 3a 6b 65 79 77 6f 72 64 73 0a 20 20 27 28 22 6c 69 73 70 22 29 | ur.net")...:keywords...'("lisp") |
| 0560 | 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 70 6c 65 78 | ...:url."https://github.com/plex |
| 0580 | 75 73 2f 61 2e 65 6c 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b | us/a.el").;;.Local.Variables:.;; |
| 05a0 | 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 | .no-byte-compile:.t.;;.End:..... |
| 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 | 61 2d 32 30 32 31 30 39 32 39 2e 31 35 31 30 2f 61 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 | a-20210929.1510/a.el............ |
| 0620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 33 30 30 34 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 37 37 34 00 20 30 00 00 00 | 0030045.00000000000.011774..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 61 2e 65 6c 20 2d 2d 2d 20 41 73 73 6f 63 69 61 74 69 76 65 20 64 61 74 61 20 73 74 | ;;;.a.el.---.Associative.data.st |
| 0820 | 72 75 63 74 75 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d | ructure.functions...-*-.lexical- |
| 0840 | 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 | binding:.t;.-*-..;;.Copyright.(C |
| 0860 | 29 20 32 30 31 37 2d 32 30 32 31 20 20 41 72 6e 65 20 42 72 61 73 73 65 75 72 0a 0a 3b 3b 20 41 | ).2017-2021..Arne.Brasseur..;;.A |
| 0880 | 75 74 68 6f 72 3a 20 41 72 6e 65 20 42 72 61 73 73 65 75 72 20 3c 61 72 6e 65 40 61 72 6e 65 62 | uthor:.Arne.Brasseur.<arne@arneb |
| 08a0 | 72 61 73 73 65 75 72 2e 6e 65 74 3e 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 | rasseur.net>.;;.URL:.https://git |
| 08c0 | 68 75 62 2e 63 6f 6d 2f 70 6c 65 78 75 73 2f 61 2e 65 6c 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a | hub.com/plexus/a.el.;;.Keywords: |
| 08e0 | 20 6c 69 73 70 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 31 2e 30 2e 30 0a 3b 3b 20 50 61 63 6b 61 | .lisp.;;.Version:.1.0.0.;;.Packa |
| 0900 | 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 35 22 29 29 0a 0a 3b 3b 20 | ge-Requires:.((emacs."25"))..;;. |
| 0920 | 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 45 6d 61 | This.file.is.not.part.of.GNU.Ema |
| 0940 | 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 | cs...;;.This.file.is.free.softwa |
| 0960 | 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f | re;.you.can.redistribute.it.and/ |
| 0980 | 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 65 72 6d 73 20 | or.modify.;;.it.under.the.terms. |
| 09a0 | 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 69 63 65 6e 73 | of.the.GNU.General.Public.Licens |
| 09c0 | 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 65 65 20 53 6f | e.as.published.by.;;.the.Free.So |
| 09e0 | 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f | ftware.Foundation;.either.versio |
| 0a00 | 6e 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 | n.3,.or.(at.your.option).;;.any. |
| 0a20 | 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 | later.version...;;.This.file.is. |
| 0a40 | 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 | distributed.in.the.hope.that.it. |
| 0a60 | 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 | will.be.useful,.;;.but.WITHOUT.A |
| 0a80 | 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d | NY.WARRANTY;.without.even.the.im |
| 0aa0 | 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 | plied.warranty.of.;;.MERCHANTABI |
| 0ac0 | 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 | LITY.or.FITNESS.FOR.A.PARTICULAR |
| 0ae0 | 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 | .PURPOSE...See.the.;;.GNU.Genera |
| 0b00 | 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c | l.Public.License.for.more.detail |
| 0b20 | 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 | s...;;.You.should.have.received. |
| 0b40 | 61 20 63 6f 70 79 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 | a.copy.of.the.GNU.General.Public |
| 0b60 | 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 | .License.;;.along.with.GNU.Emacs |
| 0b80 | 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c | ;.see.the.file.COPYING...If.not, |
| 0ba0 | 20 77 72 69 74 65 20 74 6f 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 | .write.to.;;.the.Free.Software.F |
| 0bc0 | 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 | oundation,.Inc.,.51.Franklin.Str |
| 0be0 | 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 0a 3b 3b 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 | eet,.Fifth.Floor,.;;.Boston,.MA. |
| 0c00 | 30 32 31 31 30 2d 31 33 30 31 2c 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 | 02110-1301,.USA...;;;.Commentary |
| 0c20 | 3a 0a 0a 3b 3b 20 4c 69 62 72 61 72 79 20 66 6f 72 20 64 65 61 6c 69 6e 67 20 77 69 74 68 20 61 | :..;;.Library.for.dealing.with.a |
| 0c40 | 73 73 6f 63 69 61 74 69 76 65 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 3a 20 61 6c 69 73 | ssociative.data.structures:.alis |
| 0c60 | 74 73 2c 20 68 61 73 68 2d 6d 61 70 73 2c 20 61 6e 64 0a 3b 3b 20 76 65 63 74 6f 72 73 20 28 66 | ts,.hash-maps,.and.;;.vectors.(f |
| 0c80 | 6f 72 20 76 65 63 74 6f 72 73 2c 20 74 68 65 20 69 6e 64 69 63 65 73 20 61 72 65 20 74 72 65 61 | or.vectors,.the.indices.are.trea |
| 0ca0 | 74 65 64 20 61 73 20 6b 65 79 73 29 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 6c 69 62 72 61 72 79 | ted.as.keys)..;;.;;.This.library |
| 0cc0 | 20 69 73 20 6c 61 72 67 65 6c 79 20 69 6e 73 70 69 72 65 64 20 62 79 20 43 6c 6f 6a 75 72 65 2c | .is.largely.inspired.by.Clojure, |
| 0ce0 | 20 69 74 20 68 61 73 20 6d 61 6e 79 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 0a 3b 3b | .it.has.many.of.the.functions.;; |
| 0d00 | 20 66 6f 75 6e 64 20 69 6e 20 63 6c 6f 6a 75 72 65 2e 63 6f 72 65 2c 20 70 72 65 66 69 78 65 64 | .found.in.clojure.core,.prefixed |
| 0d20 | 20 77 69 74 68 20 60 61 2d 27 2e 20 41 6c 6c 20 66 75 6e 63 74 69 6f 6e 73 20 74 72 65 61 74 20 | .with.`a-'..All.functions.treat. |
| 0d40 | 74 68 65 69 72 0a 3b 3b 20 61 72 67 75 6d 65 6e 74 73 20 61 73 20 69 6d 6d 75 74 61 62 6c 65 2c | their.;;.arguments.as.immutable, |
| 0d60 | 20 73 6f 20 65 2e 67 2e 20 60 61 2d 61 73 73 6f 63 27 20 77 69 6c 6c 20 63 6c 6f 6e 65 20 74 68 | .so.e.g..`a-assoc'.will.clone.th |
| 0d80 | 65 20 68 61 73 68 2d 74 61 62 6c 65 20 6f 72 20 61 6c 69 73 74 0a 3b 3b 20 69 74 20 69 73 20 67 | e.hash-table.or.alist.;;.it.is.g |
| 0da0 | 69 76 65 6e 2e 20 4b 65 65 70 20 74 68 69 73 20 69 6e 20 6d 69 6e 64 20 77 68 65 6e 20 77 72 69 | iven..Keep.this.in.mind.when.wri |
| 0dc0 | 74 69 6e 67 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 73 65 6e 73 69 74 69 76 65 20 63 6f 64 65 2e | ting.performance.sensitive.code. |
| 0de0 | 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 | ..;;;.Code:..(eval-when-compile. |
| 0e00 | 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 29 20 3b 3b 20 66 6f 72 20 74 68 69 6e 67 73 | (require.'subr-x)).;;.for.things |
| 0e20 | 20 6c 69 6b 65 20 68 61 73 68 2d 74 61 62 6c 65 2d 6b 65 79 73 0a 0a 28 72 65 71 75 69 72 65 20 | .like.hash-table-keys..(require. |
| 0e40 | 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 73 65 71 29 0a 0a 28 64 65 66 75 6e 20 | 'cl-lib).(require.'seq)..(defun. |
| 0e60 | 61 2d 61 73 73 6f 63 69 61 74 69 76 65 2d 70 20 28 6f 62 6a 29 0a 20 20 28 6f 72 20 28 6e 6f 74 | a-associative-p.(obj)...(or.(not |
| 0e80 | 20 6f 62 6a 29 0a 20 20 20 20 20 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 6f 62 6a 29 0a 20 | .obj).......(hash-table-p.obj).. |
| 0ea0 | 20 20 20 20 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 6f 62 6a 29 0a 20 20 20 20 20 20 20 20 20 20 | .....(and.(consp.obj)........... |
| 0ec0 | 20 28 63 6f 6e 73 70 20 28 63 61 72 20 6f 62 6a 29 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 | .(consp.(car.obj)))))..(defalias |
| 0ee0 | 20 27 61 2d 61 73 73 6f 63 69 61 74 69 76 65 3f 20 27 61 2d 61 73 73 6f 63 69 61 74 69 76 65 2d | .'a-associative?.'a-associative- |
| 0f00 | 70 29 0a 0a 28 64 65 66 75 6e 20 61 2d 67 65 74 20 28 6d 61 70 20 6b 65 79 20 26 6f 70 74 69 6f | p)..(defun.a-get.(map.key.&optio |
| 0f20 | 6e 61 6c 20 6e 6f 74 2d 66 6f 75 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 76 61 6c | nal.not-found)..."Return.the.val |
| 0f40 | 75 65 20 4d 41 50 20 6d 61 70 70 65 64 20 74 6f 20 4b 45 59 2c 20 4e 4f 54 2d 46 4f 55 4e 44 20 | ue.MAP.mapped.to.KEY,.NOT-FOUND. |
| 0f60 | 6f 72 20 6e 69 6c 20 69 66 20 6b 65 79 20 6e 6f 74 20 70 72 65 73 65 6e 74 2e 22 0a 20 20 28 63 | or.nil.if.key.not.present."...(c |
| 0f80 | 6f 6e 64 0a 20 20 20 3b 3b 20 6f 77 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 6e 73 | ond....;;.own.implementation.ins |
| 0fa0 | 74 65 61 64 20 6f 66 20 61 6c 69 73 74 2d 67 65 74 20 73 6f 20 6b 65 79 73 20 61 72 65 20 63 68 | tead.of.alist-get.so.keys.are.ch |
| 0fc0 | 65 63 6b 65 64 20 77 69 74 68 20 65 71 75 61 6c 0a 20 20 20 3b 3b 20 69 6e 73 74 65 61 64 20 6f | ecked.with.equal....;;.instead.o |
| 0fe0 | 66 20 65 71 0a 20 20 20 28 28 6c 69 73 74 70 20 6d 61 70 29 0a 20 20 20 20 28 61 2d 2d 61 6c 69 | f.eq....((listp.map).....(a--ali |
| 1000 | 73 74 2d 67 65 74 20 6d 61 70 20 6b 65 79 20 6e 6f 74 2d 66 6f 75 6e 64 29 29 0a 0a 20 20 20 28 | st-get.map.key.not-found)).....( |
| 1020 | 28 76 65 63 74 6f 72 70 20 6d 61 70 29 0a 20 20 20 20 28 69 66 20 28 61 2d 68 61 73 2d 6b 65 79 | (vectorp.map).....(if.(a-has-key |
| 1040 | 3f 20 6d 61 70 20 6b 65 79 29 0a 20 20 20 20 20 20 20 20 28 61 72 65 66 20 6d 61 70 20 6b 65 79 | ?.map.key).........(aref.map.key |
| 1060 | 29 0a 20 20 20 20 20 20 6e 6f 74 2d 66 6f 75 6e 64 29 29 0a 0a 20 20 20 28 28 68 61 73 68 2d 74 | ).......not-found)).....((hash-t |
| 1080 | 61 62 6c 65 2d 70 20 6d 61 70 29 0a 20 20 20 20 28 67 65 74 68 61 73 68 20 6b 65 79 20 6d 61 70 | able-p.map).....(gethash.key.map |
| 10a0 | 20 6e 6f 74 2d 66 6f 75 6e 64 29 29 0a 20 20 20 28 74 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 | .not-found))....(t.(user-error." |
| 10c0 | 4e 6f 74 20 61 73 73 6f 63 69 61 74 69 76 65 3a 20 25 53 22 20 6d 61 70 29 29 29 29 0a 0a 28 64 | Not.associative:.%S".map))))..(d |
| 10e0 | 65 66 75 6e 20 61 2d 2d 61 6c 69 73 74 2d 67 65 74 20 28 6d 61 70 20 6b 65 79 20 26 6f 70 74 69 | efun.a--alist-get.(map.key.&opti |
| 1100 | 6f 6e 61 6c 20 6e 6f 74 2d 66 6f 75 6e 64 29 0a 20 20 22 4c 69 6b 65 20 61 6c 69 73 74 2d 67 65 | onal.not-found)..."Like.alist-ge |
| 1120 | 74 2c 20 62 75 74 20 75 73 65 73 20 65 71 75 61 6c 20 69 6e 73 74 65 61 64 20 6f 66 20 65 71 20 | t,.but.uses.equal.instead.of.eq. |
| 1140 | 74 6f 20 6c 6f 6f 6b 20 75 70 20 69 6e 20 6d 61 70 20 4d 41 50 20 6b 65 79 20 4b 45 59 2e 0a 52 | to.look.up.in.map.MAP.key.KEY..R |
| 1160 | 65 74 75 72 6e 73 20 4e 4f 54 2d 46 4f 55 4e 44 20 69 66 20 74 68 65 20 6b 65 79 20 69 73 20 6e | eturns.NOT-FOUND.if.the.key.is.n |
| 1180 | 6f 74 20 70 72 65 73 65 6e 74 2c 20 6f 72 20 60 6e 69 6c 27 20 69 66 0a 4e 4f 54 2d 46 4f 55 4e | ot.present,.or.`nil'.if.NOT-FOUN |
| 11a0 | 44 20 69 73 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2e 22 0a 20 20 28 63 6c 2d 62 6c 6f 63 6b | D.is.not.specified."...(cl-block |
| 11c0 | 20 6e 69 6c 0a 20 20 20 20 28 73 65 71 2d 64 6f 73 65 71 20 28 70 61 69 72 20 6d 61 70 29 0a 20 | .nil.....(seq-doseq.(pair.map).. |
| 11e0 | 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 28 63 61 72 20 70 61 69 72 29 20 6b 65 79 | .....(when.(equal.(car.pair).key |
| 1200 | 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 74 75 72 6e 20 28 63 64 72 20 70 61 69 72 29 29 | ).........(cl-return.(cdr.pair)) |
| 1220 | 29 29 0a 20 20 20 20 6e 6f 74 2d 66 6f 75 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 67 65 74 | )).....not-found))..(defun.a-get |
| 1240 | 2d 69 6e 20 28 6d 20 6b 73 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 74 2d 66 6f 75 6e 64 29 0a 20 | -in.(m.ks.&optional.not-found).. |
| 1260 | 20 22 4c 6f 6f 6b 20 75 70 20 61 20 76 61 6c 75 65 20 69 6e 20 61 20 6e 65 73 74 65 64 20 61 73 | ."Look.up.a.value.in.a.nested.as |
| 1280 | 73 6f 63 69 61 74 69 76 65 20 73 74 72 75 63 74 75 72 65 2e 0a 0a 47 69 76 65 6e 20 61 20 64 61 | sociative.structure...Given.a.da |
| 12a0 | 74 61 20 73 74 72 75 63 74 75 72 65 20 4d 2c 20 61 6e 64 20 61 20 73 65 71 75 65 6e 63 65 20 6f | ta.structure.M,.and.a.sequence.o |
| 12c0 | 66 20 6b 65 79 73 20 4b 53 2c 20 66 69 6e 64 20 74 68 65 0a 76 61 6c 75 65 20 66 6f 75 6e 64 20 | f.keys.KS,.find.the.value.found. |
| 12e0 | 62 79 20 75 73 69 6e 67 20 65 61 63 68 20 6b 65 79 20 69 6e 20 74 75 72 6e 20 74 6f 20 64 6f 20 | by.using.each.key.in.turn.to.do. |
| 1300 | 61 20 6c 6f 6f 6b 75 70 20 69 6e 20 74 68 65 20 6e 65 78 74 0a 5c 22 6c 61 79 65 72 5c 22 2e 20 | a.lookup.in.the.next.\"layer\".. |
| 1320 | 52 65 74 75 72 6e 20 60 6e 69 6c 27 20 69 66 20 74 68 65 20 6b 65 79 20 69 73 20 6e 6f 74 20 70 | Return.`nil'.if.the.key.is.not.p |
| 1340 | 72 65 73 65 6e 74 2c 20 6f 72 20 74 68 65 20 4e 4f 54 2d 46 4f 55 4e 44 0a 76 61 6c 75 65 20 69 | resent,.or.the.NOT-FOUND.value.i |
| 1360 | 66 20 73 75 70 70 6c 69 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 6d 29 29 | f.supplied."...(let.((result.m)) |
| 1380 | 0a 20 20 20 20 28 63 6c 2d 62 6c 6f 63 6b 20 6e 69 6c 0a 20 20 20 20 20 20 28 73 65 71 2d 64 6f | .....(cl-block.nil.......(seq-do |
| 13a0 | 73 65 71 20 28 6b 20 6b 73 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 61 2d 68 61 73 2d 6b 65 | seq.(k.ks).........(if.(a-has-ke |
| 13c0 | 79 3f 20 72 65 73 75 6c 74 20 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 | y?.result.k).............(setq.r |
| 13e0 | 65 73 75 6c 74 20 28 61 2d 67 65 74 20 72 65 73 75 6c 74 20 6b 29 29 0a 20 20 20 20 20 20 20 20 | esult.(a-get.result.k))......... |
| 1400 | 20 20 28 63 6c 2d 72 65 74 75 72 6e 20 6e 6f 74 2d 66 6f 75 6e 64 29 29 29 0a 20 20 20 20 20 20 | ..(cl-return.not-found)))....... |
| 1420 | 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 61 2d 67 65 74 2a 20 28 26 72 65 | result)))..(defmacro.a-get*.(&re |
| 1440 | 73 74 20 6b 65 79 73 29 0a 20 20 22 4c 6f 6f 6b 20 75 70 20 61 20 76 61 6c 75 65 20 69 6e 20 61 | st.keys)..."Look.up.a.value.in.a |
| 1460 | 20 6e 65 73 74 65 64 20 61 73 73 6f 63 69 61 74 69 76 65 20 73 74 72 75 63 74 75 72 65 2e 0a 0a | .nested.associative.structure... |
| 1480 | 4c 69 6b 65 20 61 2d 67 65 74 2d 69 6e 2c 20 62 75 74 20 74 61 6b 65 73 20 74 68 65 20 6b 65 79 | Like.a-get-in,.but.takes.the.key |
| 14a0 | 20 73 65 71 75 65 6e 63 65 20 4b 45 59 53 20 64 69 72 65 63 74 6c 79 20 61 73 20 76 61 72 61 72 | .sequence.KEYS.directly.as.varar |
| 14c0 | 67 0a 61 72 67 75 6d 65 6e 74 73 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 73 20 61 20 73 69 | g.arguments,.rather.than.as.a.si |
| 14e0 | 6e 67 6c 65 20 73 65 71 75 65 6e 63 65 2e 22 0a 20 20 28 63 6c 2d 6c 61 62 65 6c 73 20 28 28 72 | ngle.sequence."...(cl-labels.((r |
| 1500 | 65 63 20 28 6b 65 79 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 61 | ec.(keys)....................`(a |
| 1520 | 2d 67 65 74 20 2c 28 69 66 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 28 63 64 72 20 6b 65 79 73 29 | -get.,(if.(and.(consp.(cdr.keys) |
| 1540 | 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 20 20 20 | )............................... |
| 1560 | 20 20 20 20 20 20 20 28 63 64 64 72 20 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .......(cddr.keys))............. |
| 1580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 63 20 28 63 64 72 20 6b 65 | ....................(rec.(cdr.ke |
| 15a0 | 79 73 29 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 | ys))............................ |
| 15c0 | 20 20 20 28 63 61 64 72 20 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...(cadr.keys))................. |
| 15e0 | 20 20 20 20 20 20 20 20 20 20 20 2c 28 63 61 72 20 6b 65 79 73 29 29 29 29 0a 20 20 20 20 28 72 | ...........,(car.keys)))).....(r |
| 1600 | 65 63 20 28 6e 72 65 76 65 72 73 65 20 6b 65 79 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d | ec.(nreverse.keys))))..(defun.a- |
| 1620 | 68 61 73 2d 6b 65 79 20 28 63 6f 6c 6c 20 6b 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 74 68 65 | has-key.(coll.k)..."Check.if.the |
| 1640 | 20 67 69 76 65 6e 20 61 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f | .given.associative.collection.CO |
| 1660 | 4c 4c 20 68 61 73 20 61 20 63 65 72 74 61 69 6e 20 6b 65 79 20 4b 2e 22 0a 20 20 28 63 6f 6e 64 | LL.has.a.certain.key.K."...(cond |
| 1680 | 0a 20 20 20 28 28 6c 69 73 74 70 20 63 6f 6c 6c 29 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 | ....((listp.coll).........(not.( |
| 16a0 | 65 71 20 28 61 2d 2d 61 6c 69 73 74 2d 67 65 74 20 63 6f 6c 6c 20 6b 20 3a 6e 6f 74 2d 66 6f 75 | eq.(a--alist-get.coll.k.:not-fou |
| 16c0 | 6e 64 29 20 3a 6e 6f 74 2d 66 6f 75 6e 64 29 29 29 0a 20 20 20 28 28 76 65 63 74 6f 72 70 20 63 | nd).:not-found)))....((vectorp.c |
| 16e0 | 6f 6c 6c 29 20 20 20 20 20 20 20 28 61 6e 64 20 28 69 6e 74 65 67 65 72 70 20 6b 29 20 28 3c 20 | oll).......(and.(integerp.k).(<. |
| 1700 | 2d 31 20 6b 20 28 6c 65 6e 67 74 68 20 63 6f 6c 6c 29 29 29 29 0a 20 20 20 28 28 68 61 73 68 2d | -1.k.(length.coll))))....((hash- |
| 1720 | 74 61 62 6c 65 2d 70 20 63 6f 6c 6c 29 20 20 28 6e 6f 74 20 28 65 71 20 28 67 65 74 68 61 73 68 | table-p.coll)..(not.(eq.(gethash |
| 1740 | 20 6b 20 63 6f 6c 6c 20 3a 6e 6f 74 2d 66 6f 75 6e 64 29 20 3a 6e 6f 74 2d 66 6f 75 6e 64 29 29 | .k.coll.:not-found).:not-found)) |
| 1760 | 29 0a 20 20 20 28 74 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 61 73 73 6f 63 69 61 | )....(t.(user-error."Not.associa |
| 1780 | 74 69 76 65 3a 20 25 53 22 20 63 6f 6c 6c 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 61 | tive:.%S".coll))))..(defalias.'a |
| 17a0 | 2d 68 61 73 2d 6b 65 79 3f 20 27 61 2d 68 61 73 2d 6b 65 79 29 0a 0a 28 64 65 66 75 6e 20 61 2d | -has-key?.'a-has-key)..(defun.a- |
| 17c0 | 61 73 73 6f 63 2d 31 20 28 63 6f 6c 6c 20 6b 20 76 29 0a 20 20 22 4c 69 6b 65 20 60 61 2d 61 73 | assoc-1.(coll.k.v)..."Like.`a-as |
| 17e0 | 73 6f 63 27 2c 20 28 69 6e 20 43 4f 4c 4c 20 61 73 73 6f 63 20 4b 20 77 69 74 68 20 56 29 20 62 | soc',.(in.COLL.assoc.K.with.V).b |
| 1800 | 75 74 20 6f 6e 6c 79 20 74 61 6b 65 73 20 61 20 73 69 6e 67 6c 65 20 6b 2d 76 20 70 61 69 72 2e | ut.only.takes.a.single.k-v.pair. |
| 1820 | 0a 49 6e 74 65 72 6e 61 6c 20 68 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 63 | .Internal.helper.function."...(c |
| 1840 | 6f 6e 64 0a 20 20 20 28 28 6c 69 73 74 70 20 63 6f 6c 6c 29 0a 20 20 20 20 28 69 66 20 28 61 2d | ond....((listp.coll).....(if.(a- |
| 1860 | 68 61 73 2d 6b 65 79 3f 20 63 6f 6c 6c 20 6b 29 0a 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 | has-key?.coll.k).........(mapcar |
| 1880 | 20 28 6c 61 6d 62 64 61 20 28 65 6e 74 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(lambda.(entry)................ |
| 18a0 | 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 28 63 61 72 20 65 6e 74 72 79 29 20 6b 29 0a 20 20 20 | ...(if.(equal.(car.entry).k).... |
| 18c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6b 20 76 29 0a 20 20 | ...................(cons.k.v)... |
| 18e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 74 72 79 29 29 0a 20 20 20 20 20 20 | ..................entry))....... |
| 1900 | 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 29 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 6f 6e | ..........coll).......(cons.(con |
| 1920 | 73 20 6b 20 76 29 20 63 6f 6c 6c 29 29 29 0a 0a 20 20 20 28 28 76 65 63 74 6f 72 70 20 63 6f 6c | s.k.v).coll))).....((vectorp.col |
| 1940 | 6c 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 69 6e 74 65 67 65 72 70 20 6b 29 20 28 3e 3d | l).....(if.(and.(integerp.k).(>= |
| 1960 | 20 6b 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3c 20 6b 20 28 6c 65 6e 67 74 68 20 | .k.0)).........(if.(<.k.(length. |
| 1980 | 63 6f 6c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 70 79 20 28 | coll)).............(let.((copy.( |
| 19a0 | 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 63 6f 6c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | copy-sequence.coll)))........... |
| 19c0 | 20 20 20 20 28 61 73 65 74 20 63 6f 70 79 20 6b 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ....(aset.copy.k.v)............. |
| 19e0 | 20 20 63 6f 70 79 29 0a 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 63 6f 6c 6c 20 | ..copy)...........(vconcat.coll. |
| 1a00 | 28 6d 61 6b 65 2d 6c 69 73 74 20 28 2d 20 6b 20 28 6c 65 6e 67 74 68 20 63 6f 6c 6c 29 29 20 6e | (make-list.(-.k.(length.coll)).n |
| 1a20 | 69 6c 29 20 28 6c 69 73 74 20 76 29 29 29 29 29 0a 0a 20 20 20 28 28 68 61 73 68 2d 74 61 62 6c | il).(list.v))))).....((hash-tabl |
| 1a40 | 65 2d 70 20 63 6f 6c 6c 29 0a 20 20 20 20 28 6c 65 74 20 28 28 63 6f 70 79 20 28 63 6f 70 79 2d | e-p.coll).....(let.((copy.(copy- |
| 1a60 | 68 61 73 68 2d 74 61 62 6c 65 20 63 6f 6c 6c 29 29 29 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 | hash-table.coll))).......(puthas |
| 1a80 | 68 20 6b 20 76 20 63 6f 70 79 29 0a 20 20 20 20 20 20 63 6f 70 79 29 29 29 29 0a 0a 28 64 65 66 | h.k.v.copy).......copy))))..(def |
| 1aa0 | 75 6e 20 61 2d 61 73 73 6f 63 20 28 63 6f 6c 6c 20 26 72 65 73 74 20 6b 76 73 29 0a 20 20 22 52 | un.a-assoc.(coll.&rest.kvs)..."R |
| 1ac0 | 65 74 75 72 6e 20 61 6e 20 75 70 64 61 74 65 64 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c | eturn.an.updated.collection.COLL |
| 1ae0 | 2c 20 61 73 73 6f 63 69 61 74 69 6e 67 20 76 61 6c 75 65 73 20 77 69 74 68 20 6b 65 79 73 20 4b | ,.associating.values.with.keys.K |
| 1b00 | 56 53 2e 22 0a 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 63 6c 2d 65 76 65 6e 70 20 28 61 2d 63 | VS."...(when.(not.(cl-evenp.(a-c |
| 1b20 | 6f 75 6e 74 20 6b 76 73 29 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 61 2d 61 | ount.kvs))).....(user-error."a-a |
| 1b40 | 73 73 6f 63 20 72 65 71 75 69 72 65 73 20 61 6e 20 65 76 65 6e 20 6e 75 6d 62 65 72 20 6f 66 20 | ssoc.requires.an.even.number.of. |
| 1b60 | 61 72 67 75 6d 65 6e 74 73 21 22 29 29 0a 20 20 28 73 65 71 2d 72 65 64 75 63 65 20 28 6c 61 6d | arguments!"))...(seq-reduce.(lam |
| 1b80 | 62 64 61 20 28 63 6f 6c 6c 20 6b 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bda.(coll.kv)................... |
| 1ba0 | 28 73 65 71 2d 6c 65 74 20 5b 6b 20 76 5d 20 6b 76 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (seq-let.[k.v].kv............... |
| 1bc0 | 20 20 20 20 20 20 28 61 2d 61 73 73 6f 63 2d 31 20 63 6f 6c 6c 20 6b 20 76 29 29 29 0a 20 20 20 | ......(a-assoc-1.coll.k.v))).... |
| 1be0 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 70 61 72 74 69 74 69 6f 6e 20 6b 76 73 20 32 29 | ...........(seq-partition.kvs.2) |
| 1c00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d | ...............coll))..(defun.a- |
| 1c20 | 6b 65 79 73 20 28 63 6f 6c 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6b 65 79 73 20 69 | keys.(coll)..."Return.the.keys.i |
| 1c40 | 6e 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2e 22 0a 20 20 28 63 6f 6e 64 0a | n.the.collection.COLL."...(cond. |
| 1c60 | 20 20 20 28 28 6c 69 73 74 70 20 63 6f 6c 6c 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 63 | ...((listp.coll).....(mapcar.#'c |
| 1c80 | 61 72 20 63 6f 6c 6c 29 29 0a 0a 20 20 20 28 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 63 6f 6c | ar.coll)).....((hash-table-p.col |
| 1ca0 | 6c 29 0a 20 20 20 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 6b 65 79 73 20 63 6f 6c 6c 29 29 29 29 | l).....(hash-table-keys.coll)))) |
| 1cc0 | 0a 0a 28 64 65 66 75 6e 20 61 2d 76 61 6c 73 20 28 63 6f 6c 6c 29 0a 20 20 22 52 65 74 75 72 6e | ..(defun.a-vals.(coll)..."Return |
| 1ce0 | 20 74 68 65 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f | .the.values.in.the.collection.CO |
| 1d00 | 4c 4c 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6c 69 73 74 70 20 63 6f 6c 6c 29 0a 20 20 | LL."...(cond....((listp.coll)... |
| 1d20 | 20 20 28 6d 61 70 63 61 72 20 23 27 63 64 72 20 63 6f 6c 6c 29 29 0a 0a 20 20 20 28 28 68 61 73 | ..(mapcar.#'cdr.coll)).....((has |
| 1d40 | 68 2d 74 61 62 6c 65 2d 70 20 63 6f 6c 6c 29 0a 20 20 20 20 28 68 61 73 68 2d 74 61 62 6c 65 2d | h-table-p.coll).....(hash-table- |
| 1d60 | 76 61 6c 75 65 73 20 63 6f 6c 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 72 65 64 75 63 65 | values.coll))))..(defun.a-reduce |
| 1d80 | 2d 6b 76 20 28 66 6e 20 66 72 6f 6d 20 63 6f 6c 6c 29 0a 20 20 22 52 65 64 75 63 65 20 77 69 74 | -kv.(fn.from.coll)..."Reduce.wit |
| 1da0 | 68 20 46 4e 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 46 52 4f 4d 20 74 68 65 20 63 6f 6c 6c | h.FN.starting.from.FROM.the.coll |
| 1dc0 | 65 63 74 69 6f 6e 20 43 4f 4c 4c 2e 0a 52 65 64 75 63 65 20 61 6e 20 61 73 73 6f 63 69 61 74 69 | ection.COLL..Reduce.an.associati |
| 1de0 | 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2c 20 73 74 61 72 74 69 6e 67 20 77 69 74 | ve.collection.COLL,.starting.wit |
| 1e00 | 68 20 61 6e 20 69 6e 69 74 69 61 6c 0a 76 61 6c 75 65 20 6f 66 20 46 52 4f 4d 2e 20 54 68 65 20 | h.an.initial.value.of.FROM..The. |
| 1e20 | 72 65 64 75 63 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 72 65 63 65 69 76 65 73 20 74 68 | reducing.function.FN.receives.th |
| 1e40 | 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 0a 76 61 6c 75 65 2c 20 6b 65 79 2c 20 61 6e 64 20 76 | e.intermediate.value,.key,.and.v |
| 1e60 | 61 6c 75 65 2e 22 0a 20 20 28 73 65 71 2d 72 65 64 75 63 65 20 28 6c 61 6d 62 64 61 20 28 61 63 | alue."...(seq-reduce.(lambda.(ac |
| 1e80 | 63 20 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c | c.key)...................(funcal |
| 1ea0 | 6c 20 66 6e 20 61 63 63 20 6b 65 79 20 28 61 2d 67 65 74 20 63 6f 6c 6c 20 6b 65 79 29 29 29 0a | l.fn.acc.key.(a-get.coll.key))). |
| 1ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 6b 65 79 73 20 63 6f 6c 6c 29 0a 20 20 20 20 | ..............(a-keys.coll)..... |
| 1ee0 | 20 20 20 20 20 20 20 20 20 20 66 72 6f 6d 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 63 6f 75 6e 74 | ..........from))..(defun.a-count |
| 1f00 | 20 28 63 6f 6c 6c 29 0a 20 20 22 43 6f 75 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6b | .(coll)..."Count.the.number.of.k |
| 1f20 | 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73 20 69 6e 20 43 4f 4c 4c 2e 0a 4c 69 6b 65 20 6c 65 6e | ey-value.pairs.in.COLL..Like.len |
| 1f40 | 67 74 68 2c 20 62 75 74 20 63 61 6e 20 61 6c 73 6f 20 72 65 74 75 72 6e 20 74 68 65 20 6c 65 6e | gth,.but.can.also.return.the.len |
| 1f60 | 67 74 68 20 6f 66 20 68 61 73 68 20 74 61 62 6c 65 73 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 | gth.of.hash.tables."...(cond.... |
| 1f80 | 28 28 73 65 71 70 20 63 6f 6c 6c 29 0a 20 20 20 20 28 6c 65 6e 67 74 68 20 63 6f 6c 6c 29 29 0a | ((seqp.coll).....(length.coll)). |
| 1fa0 | 0a 20 20 20 28 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 63 6f 6c 6c 29 0a 20 20 20 20 28 68 61 | ....((hash-table-p.coll).....(ha |
| 1fc0 | 73 68 2d 74 61 62 6c 65 2d 63 6f 75 6e 74 20 63 6f 6c 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | sh-table-count.coll))))..(defun. |
| 1fe0 | 61 2d 65 71 75 61 6c 20 28 61 20 62 29 0a 20 20 22 43 6f 6d 70 61 72 65 20 63 6f 6c 6c 65 63 74 | a-equal.(a.b)..."Compare.collect |
| 2000 | 69 6f 6e 73 20 41 2c 20 42 20 66 6f 72 20 76 61 6c 75 65 20 65 71 75 61 6c 69 74 79 2e 0a 0a 41 | ions.A,.B.for.value.equality...A |
| 2020 | 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 28 68 61 73 68 20 74 61 62 | ssociative.collections.(hash.tab |
| 2040 | 6c 65 73 20 61 6e 64 20 61 2d 6c 69 73 74 73 29 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 0a | les.and.a-lists).are.considered. |
| 2060 | 65 71 75 61 6c 20 69 66 20 74 68 65 79 20 63 6f 6e 74 61 69 6e 20 65 71 75 61 6c 20 6b 65 79 2d | equal.if.they.contain.equal.key- |
| 2080 | 76 61 6c 75 65 20 70 61 69 72 73 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 6f 72 64 65 72 | value.pairs,.regardless.of.order |
| 20a0 | 2e 0a 0a 53 65 71 75 65 6e 63 65 73 20 28 6c 69 73 74 73 20 6f 72 20 76 65 63 74 6f 72 73 29 20 | ...Sequences.(lists.or.vectors). |
| 20c0 | 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 65 71 75 61 6c 20 69 66 20 74 68 65 79 20 63 6f 6e | are.considered.equal.if.they.con |
| 20e0 | 74 61 69 6e 0a 74 68 65 20 73 61 6d 65 20 65 6c 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 73 61 | tain.the.same.elements.in.the.sa |
| 2100 | 6d 65 20 6f 72 64 65 72 2e 0a 0a 43 6f 6c 6c 65 63 74 69 6f 6e 20 65 6c 65 6d 65 6e 74 73 20 61 | me.order...Collection.elements.a |
| 2120 | 72 65 20 63 6f 6d 70 61 72 65 64 20 75 73 69 6e 67 20 60 61 2d 65 71 75 61 6c 27 2e 20 49 6e 20 | re.compared.using.`a-equal'..In. |
| 2140 | 6f 74 68 65 72 20 77 6f 72 64 73 2c 0a 74 68 65 20 65 71 75 61 6c 69 74 79 20 63 68 65 63 6b 20 | other.words,.the.equality.check. |
| 2160 | 69 73 20 72 65 63 75 72 73 69 76 65 2c 20 72 65 73 75 6c 74 69 6e 67 20 69 6e 20 61 20 5c 22 64 | is.recursive,.resulting.in.a.\"d |
| 2180 | 65 65 70 5c 22 20 65 71 75 61 6c 69 74 79 0a 63 68 65 63 6b 2e 0a 0a 41 6e 79 74 68 69 6e 67 20 | eep\".equality.check...Anything. |
| 21a0 | 74 68 61 74 20 69 73 6e 27 74 20 61 73 73 6f 63 69 61 74 69 76 65 20 6f 72 20 61 20 73 65 71 75 | that.isn't.associative.or.a.sequ |
| 21c0 | 65 6e 63 65 20 69 73 20 63 6f 6d 70 61 72 65 64 20 77 69 74 68 0a 60 65 71 75 61 6c 27 2e 22 0a | ence.is.compared.with.`equal'.". |
| 21e0 | 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 61 6e 64 20 28 61 2d 61 73 73 6f 63 69 61 74 69 76 65 3f | ..(cond....((and.(a-associative? |
| 2200 | 20 61 29 20 28 61 2d 61 73 73 6f 63 69 61 74 69 76 65 3f 20 62 29 29 0a 20 20 20 20 28 6f 72 20 | .a).(a-associative?.b)).....(or. |
| 2220 | 28 65 71 75 61 6c 20 61 20 62 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 61 | (equal.a.b).........(when.(eq.(a |
| 2240 | 2d 63 6f 75 6e 74 20 61 29 20 28 61 2d 63 6f 75 6e 74 20 62 29 29 0a 20 20 20 20 20 20 20 20 20 | -count.a).(a-count.b)).......... |
| 2260 | 20 28 63 6c 2d 62 6c 6f 63 6b 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d | .(cl-block.nil.............(seq- |
| 2280 | 64 6f 73 65 71 20 28 6b 20 28 61 2d 6b 65 79 73 20 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | doseq.(k.(a-keys.a))............ |
| 22a0 | 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...(when.(not.(and.............. |
| 22c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 68 61 73 2d 6b 65 79 20 62 20 6b 29 0a 20 20 20 | .............(a-has-key.b.k).... |
| 22e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 65 71 75 61 6c 20 | .......................(a-equal. |
| 2300 | 28 61 2d 67 65 74 20 61 20 6b 29 20 28 61 2d 67 65 74 20 62 20 6b 29 29 29 29 0a 20 20 20 20 20 | (a-get.a.k).(a-get.b.k))))...... |
| 2320 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 74 75 72 6e 20 6e 69 6c 29 29 29 0a 20 20 20 | ...........(cl-return.nil))).... |
| 2340 | 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 64 6f 73 65 71 20 28 6b 20 28 61 2d 6b 65 79 73 20 62 | .........(seq-doseq.(k.(a-keys.b |
| 2360 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 61 6e 64 | ))...............(when.(not.(and |
| 2380 | 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 28 61 2d 68 61 | ...........................(a-ha |
| 23a0 | 73 2d 6b 65 79 20 61 20 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s-key.a.k)...................... |
| 23c0 | 20 20 20 20 20 28 61 2d 65 71 75 61 6c 20 28 61 2d 67 65 74 20 61 20 6b 29 20 28 61 2d 67 65 74 | .....(a-equal.(a-get.a.k).(a-get |
| 23e0 | 20 62 20 6b 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 74 | .b.k)))).................(cl-ret |
| 2400 | 75 72 6e 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 29 0a 20 20 20 | urn.nil))).............t)))).... |
| 2420 | 28 28 61 6e 64 20 28 73 65 71 75 65 6e 63 65 70 20 61 29 20 28 73 65 71 75 65 6e 63 65 70 20 62 | ((and.(sequencep.a).(sequencep.b |
| 2440 | 29 29 0a 20 20 20 20 28 61 6e 64 20 28 65 71 20 28 6c 65 6e 67 74 68 20 61 29 20 28 6c 65 6e 67 | )).....(and.(eq.(length.a).(leng |
| 2460 | 74 68 20 62 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 73 65 71 2d 65 6d | th.b))..........(or.(and.(seq-em |
| 2480 | 70 74 79 2d 70 20 61 29 20 28 73 65 71 2d 65 6d 70 74 79 2d 70 20 62 29 29 0a 20 20 20 20 20 20 | pty-p.a).(seq-empty-p.b))....... |
| 24a0 | 20 20 20 20 20 20 20 28 61 6e 64 20 28 61 2d 65 71 75 61 6c 20 28 65 6c 74 20 61 20 30 29 20 28 | .......(and.(a-equal.(elt.a.0).( |
| 24c0 | 65 6c 74 20 62 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 65 | elt.b.0))...................(a-e |
| 24e0 | 71 75 61 6c 20 28 73 65 71 2d 64 72 6f 70 20 61 20 31 29 20 28 73 65 71 2d 64 72 6f 70 20 62 20 | qual.(seq-drop.a.1).(seq-drop.b. |
| 2500 | 31 29 29 29 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 65 71 75 61 6c 20 61 20 62 29 29 29 29 | 1))))))....(t.....(equal.a.b)))) |
| 2520 | 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 61 2d 65 71 75 61 6c 3f 20 27 61 2d 65 71 75 61 6c 29 0a | ..(defalias.'a-equal?.'a-equal). |
| 2540 | 0a 28 64 65 66 75 6e 20 61 2d 6d 65 72 67 65 20 28 26 72 65 73 74 20 63 6f 6c 6c 73 29 0a 20 20 | .(defun.a-merge.(&rest.colls)... |
| 2560 | 22 4d 65 72 67 65 20 6d 75 6c 74 69 70 6c 65 20 61 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c 6c | "Merge.multiple.associative.coll |
| 2580 | 65 63 74 69 6f 6e 73 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 | ections..Return.the.type.of.the. |
| 25a0 | 66 69 72 73 74 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 53 2e 22 0a 20 20 28 73 65 71 2d | first.collection.COLLS."...(seq- |
| 25c0 | 72 65 64 75 63 65 20 28 6c 61 6d 62 64 61 20 28 74 68 69 73 20 74 68 61 74 29 0a 20 20 20 20 20 | reduce.(lambda.(this.that)...... |
| 25e0 | 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 72 65 64 75 63 65 2d 6b 76 20 28 6c 61 6d 62 64 61 20 | ...........(a-reduce-kv.(lambda. |
| 2600 | 28 63 6f 6c 6c 20 6b 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (coll.k.v)...................... |
| 2620 | 20 20 20 20 20 20 20 20 20 20 28 61 2d 61 73 73 6f 63 20 63 6f 6c 6c 20 6b 20 76 29 29 0a 20 20 | ..........(a-assoc.coll.k.v))... |
| 2640 | 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 74 68 69 73 0a | ...........................this. |
| 2660 | 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 74 68 61 | .............................tha |
| 2680 | 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 63 6f 6c 6c 73 29 0a 20 20 | t))...............(cdr.colls)... |
| 26a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 63 6f 6c 6c 73 29 29 29 0a 0a 28 64 65 66 75 | ............(car.colls)))..(defu |
| 26c0 | 6e 20 61 2d 6d 65 72 67 65 2d 77 69 74 68 20 28 66 20 26 72 65 73 74 20 63 6f 6c 6c 73 29 0a 20 | n.a-merge-with.(f.&rest.colls).. |
| 26e0 | 20 22 4d 65 72 67 65 20 6d 75 6c 74 69 70 6c 65 20 61 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c | ."Merge.multiple.associative.col |
| 2700 | 6c 65 63 74 69 6f 6e 73 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 | lections..Return.the.type.of.the |
| 2720 | 20 66 69 72 73 74 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 53 2e 20 49 66 20 61 20 6b 65 | .first.collection.COLLS..If.a.ke |
| 2740 | 79 20 65 78 69 73 74 73 20 69 6e 0a 62 6f 74 68 2c 20 74 68 65 6e 20 63 6f 6d 62 69 6e 65 20 74 | y.exists.in.both,.then.combine.t |
| 2760 | 68 65 20 61 73 73 6f 63 69 61 74 65 64 20 76 61 6c 75 65 73 20 62 79 20 63 61 6c 6c 69 6e 67 20 | he.associated.values.by.calling. |
| 2780 | 66 20 6f 6e 20 74 68 65 6d 2e 22 0a 20 20 28 73 65 71 2d 72 65 64 75 63 65 20 28 6c 61 6d 62 64 | f.on.them."...(seq-reduce.(lambd |
| 27a0 | 61 20 28 74 68 69 73 20 74 68 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 | a.(this.that).................(a |
| 27c0 | 2d 72 65 64 75 63 65 2d 6b 76 20 28 6c 61 6d 62 64 61 20 28 63 6f 6c 6c 20 6b 20 76 29 0a 20 20 | -reduce-kv.(lambda.(coll.k.v)... |
| 27e0 | 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 28 61 2d | .............................(a- |
| 2800 | 61 73 73 6f 63 20 63 6f 6c 6c 20 6b 20 28 69 66 20 28 61 2d 68 61 73 2d 6b 65 79 20 63 6f 6c 6c | assoc.coll.k.(if.(a-has-key.coll |
| 2820 | 20 6b 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 20 | .k)............................. |
| 2840 | 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 75 6e 63 61 6c 6c 20 | .......................(funcall. |
| 2860 | 66 20 76 20 28 61 2d 67 65 74 20 63 6f 6c 6c 20 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | f.v.(a-get.coll.k))............. |
| 2880 | 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 | ................................ |
| 28a0 | 20 20 20 20 20 76 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....v)))....................... |
| 28c0 | 20 20 20 20 20 20 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......this..................... |
| 28e0 | 20 20 20 20 20 20 20 20 20 74 68 61 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | .........that))...............(c |
| 2900 | 64 72 20 63 6f 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 63 6f 6c | dr.colls)...............(car.col |
| 2920 | 6c 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 61 6c 69 73 74 20 28 26 72 65 73 74 20 6b 76 73 | ls)))..(defun.a-alist.(&rest.kvs |
| 2940 | 29 0a 20 20 22 43 72 65 61 74 65 20 61 6e 20 61 73 73 6f 63 69 61 74 69 6f 6e 20 6c 69 73 74 20 | )..."Create.an.association.list. |
| 2960 | 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 6b 65 79 73 20 61 6e 64 20 76 61 6c 75 65 73 20 4b | from.the.given.keys.and.values.K |
| 2980 | 56 53 2e 0a 41 72 67 75 6d 65 6e 74 73 20 61 72 65 20 73 69 6d 70 6c 79 20 70 72 6f 76 69 64 65 | VS..Arguments.are.simply.provide |
| 29a0 | 64 20 69 6e 20 73 65 71 75 65 6e 63 65 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 73 20 6c 69 | d.in.sequence,.rather.than.as.li |
| 29c0 | 73 74 73 20 6f 72 20 63 6f 6e 73 20 63 65 6c 6c 73 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 3a 20 | sts.or.cons.cells..For.example:. |
| 29e0 | 28 61 2d 61 6c 69 73 74 20 3a 66 6f 6f 20 31 32 33 20 3a 62 61 72 20 34 35 36 29 22 0a 20 20 28 | (a-alist.:foo.123.:bar.456)"...( |
| 2a00 | 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 6b 76 29 20 28 63 6f 6e 73 20 28 63 61 72 20 6b | mapcar.(lambda.(kv).(cons.(car.k |
| 2a20 | 76 29 20 28 63 61 64 72 20 6b 76 29 29 29 20 28 73 65 71 2d 70 61 72 74 69 74 69 6f 6e 20 6b 76 | v).(cadr.kv))).(seq-partition.kv |
| 2a40 | 73 20 32 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 61 2d 6c 69 73 74 20 27 61 2d 61 6c 69 | s.2)))..(defalias.'a-list.'a-ali |
| 2a60 | 73 74 29 0a 0a 28 64 65 66 75 6e 20 61 2d 68 61 73 68 2d 74 61 62 6c 65 20 28 26 72 65 73 74 20 | st)..(defun.a-hash-table.(&rest. |
| 2a80 | 6b 76 73 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 68 61 73 68 20 74 61 62 6c 65 20 66 72 6f 6d | kvs)..."Create.a.hash.table.from |
| 2aa0 | 20 74 68 65 20 67 69 76 65 6e 20 6b 65 79 73 20 61 6e 64 20 76 61 6c 75 65 73 20 4b 56 53 2e 0a | .the.given.keys.and.values.KVS.. |
| 2ac0 | 41 72 67 75 6d 65 6e 74 73 20 61 72 65 20 73 69 6d 70 6c 79 20 70 72 6f 76 69 64 65 64 20 69 6e | Arguments.are.simply.provided.in |
| 2ae0 | 20 73 65 71 75 65 6e 63 65 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 73 20 6c 69 73 74 73 0a | .sequence,.rather.than.as.lists. |
| 2b00 | 6f 72 20 63 6f 6e 73 20 63 65 6c 6c 73 2e 20 41 73 20 5c 22 74 65 73 74 5c 22 20 66 6f 72 20 74 | or.cons.cells..As.\"test\".for.t |
| 2b20 | 68 65 20 68 61 73 68 20 74 61 62 6c 65 2c 20 65 71 75 61 6c 20 69 73 20 75 73 65 64 2e 20 54 68 | he.hash.table,.equal.is.used..Th |
| 2b40 | 65 0a 68 61 73 68 20 74 61 62 6c 65 20 69 73 20 63 72 65 61 74 65 64 20 77 69 74 68 6f 75 74 20 | e.hash.table.is.created.without. |
| 2b60 | 65 78 74 72 61 20 73 74 6f 72 61 67 65 20 73 70 61 63 65 2c 20 73 6f 20 77 69 74 68 20 61 20 73 | extra.storage.space,.so.with.a.s |
| 2b80 | 69 7a 65 0a 65 71 75 61 6c 20 74 6f 20 61 6d 6f 75 6e 74 20 6f 66 20 6b 65 79 2d 76 61 6c 75 65 | ize.equal.to.amount.of.key-value |
| 2ba0 | 20 70 61 69 72 73 2c 20 73 69 6e 63 65 20 69 74 20 69 73 20 61 73 73 75 6d 65 64 20 74 6f 20 62 | .pairs,.since.it.is.assumed.to.b |
| 2bc0 | 65 0a 74 72 65 61 74 65 64 20 61 73 20 69 6d 6d 75 74 61 62 6c 65 2e 0a 46 6f 72 20 65 78 61 6d | e.treated.as.immutable..For.exam |
| 2be0 | 70 6c 65 3a 20 28 61 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 66 6f 6f 20 31 32 33 20 3a 62 61 72 | ple:.(a-hash-table.:foo.123.:bar |
| 2c00 | 20 34 35 36 29 22 0a 20 20 28 6c 65 74 2a 20 28 28 6b 76 2d 70 61 69 72 73 20 28 73 65 71 2d 70 | .456)"...(let*.((kv-pairs.(seq-p |
| 2c20 | 61 72 74 69 74 69 6f 6e 20 6b 76 73 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 61 73 68 2d | artition.kvs.2))..........(hash- |
| 2c40 | 6d 61 70 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 | map.(make-hash-table.:test.'equa |
| 2c60 | 6c 20 3a 73 69 7a 65 20 28 6c 65 6e 67 74 68 20 6b 76 2d 70 61 69 72 73 29 29 29 29 0a 20 20 20 | l.:size.(length.kv-pairs)))).... |
| 2c80 | 20 28 73 65 71 2d 64 6f 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 0a 20 20 20 20 20 20 20 20 | .(seq-do.(lambda.(pair)......... |
| 2ca0 | 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 28 63 61 72 20 70 61 69 72 29 20 28 63 61 64 72 20 | ......(puthash.(car.pair).(cadr. |
| 2cc0 | 70 61 69 72 29 20 68 61 73 68 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6b 76 2d | pair).hash-map)).............kv- |
| 2ce0 | 70 61 69 72 73 29 0a 20 20 20 20 68 61 73 68 2d 6d 61 70 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d | pairs).....hash-map))..(defun.a- |
| 2d00 | 61 73 73 6f 63 2d 69 6e 20 28 63 6f 6c 6c 20 6b 65 79 73 20 76 61 6c 75 65 29 0a 20 20 22 49 6e | assoc-in.(coll.keys.value)..."In |
| 2d20 | 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2c 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 4b 45 | .collection.COLL,.at.location.KE |
| 2d40 | 59 53 2c 20 61 73 73 6f 63 69 61 74 65 20 76 61 6c 75 65 20 56 41 4c 55 45 2e 0a 41 73 73 6f 63 | YS,.associate.value.VALUE..Assoc |
| 2d60 | 69 61 74 65 73 20 61 20 76 61 6c 75 65 20 69 6e 20 61 20 6e 65 73 74 65 64 20 61 73 73 6f 63 69 | iates.a.value.in.a.nested.associ |
| 2d80 | 61 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2c 20 77 68 65 72 65 0a 4b 45 59 | ative.collection.COLL,.where.KEY |
| 2da0 | 53 20 69 73 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 6b 65 79 73 20 61 6e 64 20 56 41 4c 55 | S.is.a.sequence.of.keys.and.VALU |
| 2dc0 | 45 20 69 73 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 20 61 6e 64 20 72 65 74 75 72 6e 73 0a 61 | E.is.the.new.value.and.returns.a |
| 2de0 | 20 6e 65 77 20 6e 65 73 74 65 64 20 73 74 72 75 63 74 75 72 65 2e 20 49 66 20 61 6e 79 20 6c 65 | .new.nested.structure..If.any.le |
| 2e00 | 76 65 6c 73 20 64 6f 20 6e 6f 74 20 65 78 69 73 74 2c 20 61 73 73 6f 63 69 61 74 69 6f 6e 0a 6c | vels.do.not.exist,.association.l |
| 2e20 | 69 73 74 73 20 77 69 6c 6c 20 62 65 20 63 72 65 61 74 65 64 2e 22 0a 20 20 28 63 6c 2d 63 61 73 | ists.will.be.created."...(cl-cas |
| 2e40 | 65 20 28 6c 65 6e 67 74 68 20 6b 65 79 73 29 0a 20 20 20 20 28 30 20 63 6f 6c 6c 29 0a 20 20 20 | e.(length.keys).....(0.coll).... |
| 2e60 | 20 28 31 20 28 61 2d 61 73 73 6f 63 2d 31 20 63 6f 6c 6c 20 28 65 6c 74 20 6b 65 79 73 20 30 29 | .(1.(a-assoc-1.coll.(elt.keys.0) |
| 2e80 | 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 74 20 28 61 2d 61 73 73 6f 63 2d 31 20 63 6f 6c 6c 0a | .value)).....(t.(a-assoc-1.coll. |
| 2ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6c 74 20 6b 65 79 73 20 30 29 0a 20 | ..................(elt.keys.0).. |
| 2ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 2d 61 73 73 6f 63 2d 69 6e 20 28 61 2d | .................(a-assoc-in.(a- |
| 2ee0 | 67 65 74 20 63 6f 6c 6c 20 28 65 6c 74 20 6b 65 79 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 | get.coll.(elt.keys.0)).......... |
| 2f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 64 72 6f 70 20 6b | .....................(seq-drop.k |
| 2f20 | 65 79 73 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 | eys.1).......................... |
| 2f40 | 20 20 20 20 20 76 61 6c 75 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 64 69 73 73 6f 63 | .....value)))))..(defun.a-dissoc |
| 2f60 | 2d 2d 6c 69 73 74 20 28 6c 69 73 74 20 6b 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 75 70 64 | --list.(list.keys)..."Return.upd |
| 2f80 | 61 74 65 64 20 4c 49 53 54 20 77 69 74 68 20 4b 45 59 53 20 72 65 6d 6f 76 65 64 2e 0a 49 6e 74 | ated.LIST.with.KEYS.removed..Int |
| 2fa0 | 65 72 6e 61 6c 20 68 65 6c 70 65 72 2e 20 55 73 65 20 60 61 2d 64 69 73 73 6f 63 27 20 69 6e 73 | ernal.helper..Use.`a-dissoc'.ins |
| 2fc0 | 74 65 61 64 2e 22 0a 20 20 28 61 2d 72 65 64 75 63 65 2d 6b 76 20 28 6c 61 6d 62 64 61 20 28 72 | tead."...(a-reduce-kv.(lambda.(r |
| 2fe0 | 65 73 20 6b 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6d 65 | es.k.v)..................(if.(me |
| 3000 | 6d 62 65 72 20 6b 20 6b 65 79 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mber.k.keys).................... |
| 3020 | 20 20 72 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 | ..res....................(cons.( |
| 3040 | 63 6f 6e 73 20 6b 20 76 29 20 72 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cons.k.v).res)))................ |
| 3060 | 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 | nil................list))..(defu |
| 3080 | 6e 20 61 2d 64 69 73 73 6f 63 2d 2d 68 61 73 68 2d 74 61 62 6c 65 20 28 74 61 62 6c 65 20 6b 65 | n.a-dissoc--hash-table.(table.ke |
| 30a0 | 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 75 70 64 61 74 65 64 20 54 41 42 4c 45 20 77 69 74 68 | ys)..."Return.updated.TABLE.with |
| 30c0 | 20 4b 45 59 53 20 72 65 6d 6f 76 65 64 2e 0a 49 6e 74 65 72 6e 61 6c 20 68 65 6c 70 65 72 2e 20 | .KEYS.removed..Internal.helper.. |
| 30e0 | 55 73 65 20 60 61 2d 64 69 73 73 6f 63 27 20 69 6e 73 74 65 61 64 2e 22 0a 20 20 28 6c 65 74 20 | Use.`a-dissoc'.instead."...(let. |
| 3100 | 28 28 6e 65 77 2d 74 61 62 6c 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 73 69 | ((new-table.(make-hash-table.:si |
| 3120 | 7a 65 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 63 6f 75 6e 74 20 74 61 62 6c 65 29 0a 20 20 20 20 | ze.(hash-table-count.table)..... |
| 3140 | 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 | ................................ |
| 3160 | 3a 74 65 73 74 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 74 65 73 74 20 74 61 62 6c 65 29 29 29 0a | :test.(hash-table-test.table))). |
| 3180 | 20 20 20 20 20 20 20 20 28 72 65 73 74 2d 6b 65 79 73 20 28 73 65 71 2d 72 65 6d 6f 76 65 20 28 | ........(rest-keys.(seq-remove.( |
| 31a0 | 6c 61 6d 62 64 61 20 28 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lambda.(k)...................... |
| 31c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 6b 20 6b 65 79 73 29 29 0a 20 20 20 | ............(member.k.keys)).... |
| 31e0 | 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 61 2d 6b | ............................(a-k |
| 3200 | 65 79 73 20 74 61 62 6c 65 29 29 29 29 0a 20 20 20 20 28 73 65 71 2d 64 6f 73 65 71 20 28 6b 20 | eys.table)))).....(seq-doseq.(k. |
| 3220 | 72 65 73 74 2d 6b 65 79 73 29 0a 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 6b 20 28 67 65 74 | rest-keys).......(puthash.k.(get |
| 3240 | 68 61 73 68 20 6b 20 74 61 62 6c 65 29 20 6e 65 77 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 6e 65 | hash.k.table).new-table)).....ne |
| 3260 | 77 2d 74 61 62 6c 65 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 64 69 73 73 6f 63 20 28 63 6f 6c 6c | w-table))..(defun.a-dissoc.(coll |
| 3280 | 20 26 72 65 73 74 20 6b 65 79 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6e 20 75 70 64 61 74 65 | .&rest.keys)..."Return.an.update |
| 32a0 | 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 20 77 69 74 | d.version.of.collection.COLL.wit |
| 32c0 | 68 20 74 68 65 20 4b 45 59 20 72 65 6d 6f 76 65 64 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 | h.the.KEY.removed."...(cond....( |
| 32e0 | 28 6c 69 73 74 70 20 63 6f 6c 6c 29 20 28 61 2d 64 69 73 73 6f 63 2d 2d 6c 69 73 74 20 63 6f 6c | (listp.coll).(a-dissoc--list.col |
| 3300 | 6c 20 6b 65 79 73 29 29 0a 20 20 20 28 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 63 6f 6c 6c 29 | l.keys))....((hash-table-p.coll) |
| 3320 | 20 28 61 2d 64 69 73 73 6f 63 2d 2d 68 61 73 68 2d 74 61 62 6c 65 20 63 6f 6c 6c 20 6b 65 79 73 | .(a-dissoc--hash-table.coll.keys |
| 3340 | 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d 75 70 64 61 74 65 20 28 63 6f 6c 6c 20 6b 65 79 20 | ))))..(defun.a-update.(coll.key. |
| 3360 | 66 6e 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 49 6e 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 | fn.&rest.args)..."In.collection. |
| 3380 | 43 4f 4c 4c 2c 20 61 74 20 6c 6f 63 61 74 69 6f 6e 20 4b 45 59 2c 20 61 70 70 6c 79 20 46 4e 20 | COLL,.at.location.KEY,.apply.FN. |
| 33a0 | 77 69 74 68 20 65 78 74 72 61 20 61 72 67 73 20 41 52 47 53 2e 0a 27 55 70 64 61 74 65 73 27 20 | with.extra.args.ARGS..'Updates'. |
| 33c0 | 61 20 76 61 6c 75 65 20 69 6e 20 61 6e 20 61 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c 6c 65 63 | a.value.in.an.associative.collec |
| 33e0 | 74 69 6f 6e 20 43 4f 4c 4c 2c 20 77 68 65 72 65 20 4b 45 59 20 69 73 0a 61 20 6b 65 79 20 61 6e | tion.COLL,.where.KEY.is.a.key.an |
| 3400 | 64 20 46 4e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 77 69 6c 6c 20 74 61 6b | d.FN.is.a.function.that.will.tak |
| 3420 | 65 20 74 68 65 20 6f 6c 64 20 76 61 6c 75 65 20 61 6e 64 20 61 6e 79 0a 73 75 70 70 6c 69 65 64 | e.the.old.value.and.any.supplied |
| 3440 | 20 61 72 67 73 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 2c 20 | .args.and.return.the.new.value,. |
| 3460 | 61 6e 64 20 72 65 74 75 72 6e 73 20 61 20 6e 65 77 0a 73 74 72 75 63 74 75 72 65 2e 20 49 66 20 | and.returns.a.new.structure..If. |
| 3480 | 74 68 65 20 6b 65 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2c 20 6e 69 6c 20 69 73 20 70 | the.key.does.not.exist,.nil.is.p |
| 34a0 | 61 73 73 65 64 20 61 73 20 74 68 65 20 6f 6c 64 0a 76 61 6c 75 65 2e 22 0a 20 20 28 61 2d 61 73 | assed.as.the.old.value."...(a-as |
| 34c0 | 73 6f 63 2d 31 20 63 6f 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 0a 20 20 20 20 | soc-1.coll..............key..... |
| 34e0 | 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 66 75 6e 63 61 6c 6c 20 66 6e 20 28 61 2d | .........(apply.#'funcall.fn.(a- |
| 3500 | 67 65 74 20 63 6f 6c 6c 20 6b 65 79 29 20 61 72 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 61 2d | get.coll.key).args)))..(defun.a- |
| 3520 | 75 70 64 61 74 65 2d 69 6e 20 28 63 6f 6c 6c 20 6b 65 79 73 20 66 6e 20 26 72 65 73 74 20 61 72 | update-in.(coll.keys.fn.&rest.ar |
| 3540 | 67 73 29 0a 20 20 22 49 6e 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 43 4f 4c 4c 2c 20 61 74 20 6c 6f | gs)..."In.collection.COLL,.at.lo |
| 3560 | 63 61 74 69 6f 6e 20 4b 45 59 53 2c 20 61 70 70 6c 79 20 46 4e 20 77 69 74 68 20 65 78 74 72 61 | cation.KEYS,.apply.FN.with.extra |
| 3580 | 20 61 72 67 73 20 41 52 47 53 2e 0a 27 55 70 64 61 74 65 73 27 20 61 20 76 61 6c 75 65 20 69 6e | .args.ARGS..'Updates'.a.value.in |
| 35a0 | 20 61 20 6e 65 73 74 65 64 20 61 73 73 6f 63 69 61 74 69 76 65 20 63 6f 6c 6c 65 63 74 69 6f 6e | .a.nested.associative.collection |
| 35c0 | 20 43 4f 4c 4c 2c 20 77 68 65 72 65 0a 4b 45 59 53 20 69 73 20 61 20 73 65 71 75 65 6e 63 65 20 | .COLL,.where.KEYS.is.a.sequence. |
| 35e0 | 6f 66 20 6b 65 79 73 20 61 6e 64 20 46 4e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 | of.keys.and.FN.is.a.function.tha |
| 3600 | 74 20 77 69 6c 6c 20 74 61 6b 65 0a 74 68 65 20 6f 6c 64 20 76 61 6c 75 65 20 61 6e 64 20 61 6e | t.will.take.the.old.value.and.an |
| 3620 | 79 20 73 75 70 70 6c 69 65 64 20 41 52 47 53 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6e | y.supplied.ARGS.and.return.the.n |
| 3640 | 65 77 20 76 61 6c 75 65 2c 20 61 6e 64 0a 72 65 74 75 72 6e 73 20 61 20 6e 65 77 20 6e 65 73 74 | ew.value,.and.returns.a.new.nest |
| 3660 | 65 64 20 73 74 72 75 63 74 75 72 65 2e 20 49 66 20 61 6e 79 20 6c 65 76 65 6c 73 20 64 6f 20 6e | ed.structure..If.any.levels.do.n |
| 3680 | 6f 74 20 65 78 69 73 74 2c 0a 61 73 73 6f 63 69 61 74 69 6f 6e 20 6c 69 73 74 73 20 77 69 6c 6c | ot.exist,.association.lists.will |
| 36a0 | 20 62 65 20 63 72 65 61 74 65 64 2e 22 0a 20 20 28 63 6c 2d 63 61 73 65 20 28 6c 65 6e 67 74 68 | .be.created."...(cl-case.(length |
| 36c0 | 20 6b 65 79 73 29 0a 20 20 20 20 28 30 20 63 6f 6c 6c 29 0a 20 20 20 20 28 31 20 28 61 70 70 6c | .keys).....(0.coll).....(1.(appl |
| 36e0 | 79 20 23 27 61 2d 75 70 64 61 74 65 20 63 6f 6c 6c 20 28 65 6c 74 20 6b 65 79 73 20 30 29 20 66 | y.#'a-update.coll.(elt.keys.0).f |
| 3700 | 6e 20 61 72 67 73 29 29 0a 20 20 20 20 28 74 20 28 61 2d 61 73 73 6f 63 2d 31 20 63 6f 6c 6c 0a | n.args)).....(t.(a-assoc-1.coll. |
| 3720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6c 74 20 6b 65 79 73 20 30 29 0a 20 | ..................(elt.keys.0).. |
| 3740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 61 2d 75 70 64 61 | .................(apply.#'a-upda |
| 3760 | 74 65 2d 69 6e 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 28 | te-in..........................( |
| 3780 | 61 2d 67 65 74 20 63 6f 6c 6c 20 28 65 6c 74 20 6b 65 79 73 20 30 29 29 0a 20 20 20 20 20 20 20 | a-get.coll.(elt.keys.0))........ |
| 37a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 64 72 6f 70 20 6b 65 79 73 | ..................(seq-drop.keys |
| 37c0 | 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 66 6e 0a | .1)..........................fn. |
| 37e0 | 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 61 72 67 73 29 29 29 | .........................args))) |
| 3800 | 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 61 29 0a 0a 3b 3b 3b 20 61 2e 65 6c 20 65 6e 64 73 20 | ))..(provide.'a)..;;;.a.el.ends. |
| 3820 | 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | here............................ |
| 3840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 38a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 38c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 38e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 39a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 39c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 39e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 40a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 40c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 40e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 41a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 41c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 41e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 43a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 43c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 43e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 44a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 44c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 44e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 46a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 46c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 46e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 47a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 47c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 47e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 48a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 48c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 48e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 49a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 49c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 49e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |