summaryrefslogtreecommitdiff
path: root/localrepo/ztree-1.0.6.tar
blob: 1cbee3995332b142e7835a87a92336dce894ab4f (plain)
ofshex dumpascii
0000 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ztree-1.0.6/....................
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 33 30 36 00 20 35 00 00 00 0000000.00000000000.011306..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 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 70 72 6f 74 6f 63 6f 6c 2e 65 6c 00 00 00 ztree-1.0.6/ztree-protocol.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 35 35 32 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 36 32 34 00 20 30 00 00 00 0005522.00000000000.014624..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 3b 3b 3b 20 7a 74 72 65 65 2d 70 72 6f 74 6f 63 6f 6c 2e 65 6c 20 2d 2d 2d 20 67 65 6e 65 72 69 ;;;.ztree-protocol.el.---.generi
0420 63 20 70 72 6f 74 6f 63 6f 6c 20 66 6f 72 20 7a 74 72 65 65 2d 76 69 65 77 20 2d 2a 2d 20 6c 65 c.protocol.for.ztree-view.-*-.le
0440 78 69 63 61 6c 2d 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 xical-binding:.t;.-*-..;;.Copyri
0460 67 68 74 20 28 43 29 20 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e ght.(C).2021..Free.Software.Foun
0480 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 41 6c 65 78 65 dation,.Inc..;;.;;.Author:.Alexe
04a0 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 y.Veretennikov.<alexey.veretenni
04c0 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 32 30 kov@gmail.com>.;;.;;.Created:.20
04e0 32 31 2d 30 32 2d 31 32 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 6c 65 73 20 74 21-02-12.;;.;;.Keywords:.files.t
0500 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f ools.;;.URL:.https://github.com/
0520 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3a 20 fourier/ztree.;;.Compatibility:.
0540 47 4e 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 GNU.Emacs.24.x.;;.;;.This.file.i
0560 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 s.part.of.GNU.Emacs..;;.;;.GNU.E
0580 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e 20 72 macs.is.free.software:.you.can.r
05a0 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 edistribute.it.and/or.modify.;;.
05c0 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 it.under.the.terms.of.the.GNU.Ge
05e0 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 neral.Public.License.as.publishe
0600 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 d.by.;;.the.Free.Software.Founda
0620 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 tion,.either.version.3.of.the.Li
0640 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e cense,.or.;;.(at.your.option).an
0660 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 73 y.later.version..;;.;;.GNU.Emacs
0680 20 69 73 20 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 .is.distributed.in.the.hope.that
06a0 20 69 74 20 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 .it.will.be.useful,.;;.but.WITHO
06c0 55 54 20 41 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 UT.ANY.WARRANTY;.without.even.th
06e0 65 20 69 6d 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 e.implied.warranty.of.;;.MERCHAN
0700 54 41 42 49 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 TABILITY.or.FITNESS.FOR.A.PARTIC
0720 55 4c 41 52 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 ULAR.PURPOSE...See.the.;;.GNU.Ge
0740 6e 65 72 61 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 neral.Public.License.for.more.de
0760 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 tails..;;.;;.You.should.have.rec
0780 65 69 76 65 64 20 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 eived.a.copy.of.the.GNU.General.
07a0 50 75 62 6c 69 63 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 Public.License.;;.along.with.GNU
07c0 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 .Emacs...If.not,.see.<http://www
07e0 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b 3b 20 43 6f 6d 6d .gnu.org/licenses/>..;;.;;;.Comm
0800 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 47 65 6e 65 72 69 63 20 70 72 6f 74 6f 63 6f 6c 20 66 6f 72 entary:..;;.Generic.protocol.for
0820 20 7a 74 72 65 65 2d 76 69 65 77 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65 76 61 6c 2d 77 68 .ztree-view..;;;.Code:..(eval-wh
0840 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 0a 3b en-compile.(require.'cl-lib))..;
0860 3b 3b 20 4e 6f 64 65 20 70 72 6f 74 6f 63 6f 6c 0a 0a 3b 3b 3b 20 4f 62 6c 69 67 61 74 6f 72 79 ;;.Node.protocol..;;;.Obligatory
0880 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 .to.implement..(cl-defgeneric.zt
08a0 72 65 65 2d 6e 6f 64 65 2d 76 69 73 69 62 6c 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 ree-node-visible-p.(node)..."Ret
08c0 75 72 6e 20 54 20 69 66 20 74 68 65 20 4e 4f 44 45 20 73 68 61 6c 6c 20 62 65 20 76 69 73 69 62 urn.T.if.the.NODE.shall.be.visib
08e0 6c 65 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 2d 6e 6f 64 65 le.")..(cl-defgeneric.ztree-node
0900 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 -short-name.(node)..."Return.the
0920 20 73 68 6f 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 6f 64 65 2e 22 29 0a 0a 28 63 6c 2d 64 .short.name.for.a.node.")..(cl-d
0940 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 61 6e 64 61 62 6c 65 2d efgeneric.ztree-node-expandable-
0960 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 54 20 69 66 20 74 68 65 20 6e 6f 64 65 p.(node)..."Return.T.if.the.node
0980 20 69 73 20 65 78 70 61 6e 64 61 62 6c 65 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 .is.expandable.")..(cl-defgeneri
09a0 63 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 71 75 61 6c 20 28 6e 6f 64 65 31 20 6e 6f 64 65 32 29 c.ztree-node-equal.(node1.node2)
09c0 0a 20 20 22 45 71 75 61 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 4e 4f 44 45 31 20 ..."Equality.function.for.NODE1.
09e0 61 6e 64 20 4e 4f 44 45 32 2e 0a 52 65 74 75 72 6e 20 54 20 69 66 20 6e 6f 64 65 73 20 61 72 65 and.NODE2..Return.T.if.nodes.are
0a00 20 65 71 75 61 6c 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 2d 6e .equal")..(cl-defgeneric.ztree-n
0a20 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 ode-children.(node)..."Return.a.
0a40 6c 69 73 74 20 6f 66 20 4e 4f 44 45 20 63 68 69 6c 64 72 65 6e 22 29 0a 0a 3b 3b 3b 20 4f 70 74 list.of.NODE.children")..;;;.Opt
0a60 69 6f 6e 61 6c 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 ional.to.implement.(cl-defgeneri
0a80 63 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 c.ztree-node-side.(node)..."Dete
0aa0 72 6d 69 6e 65 20 74 68 65 20 73 69 64 65 20 6f 66 20 74 68 65 20 4e 4f 44 45 2e 22 29 0a 0a 28 rmine.the.side.of.the.NODE.")..(
0ac0 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 66 61 63 65 20 28 6e cl-defgeneric.ztree-node-face.(n
0ae0 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 61 63 65 20 74 6f 20 77 72 69 74 65 20 61 ode)..."Return.a.face.to.write.a
0b00 20 4e 4f 44 45 20 69 6e 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 .NODE.in")..(cl-defgeneric.ztree
0b20 2d 6e 6f 64 65 2d 61 63 74 69 6f 6e 20 28 6e 6f 64 65 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 61 -node-action.(node)..."Perform.a
0b40 6e 20 61 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 52 65 74 75 72 6e 20 69 73 20 70 72 65 73 n.action.when.the.Return.is.pres
0b60 73 65 64 20 6f 6e 20 61 20 4e 4f 44 45 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 sed.on.a.NODE.")..(cl-defgeneric
0b80 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 6c 65 66 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 6e 6f 64 .ztree-node-left-short-name.(nod
0ba0 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 65 66 74 20 73 68 6f 72 74 20 6e 61 6d 65 e)..."Return.the.left.short.name
0bc0 20 66 6f 72 20 61 20 6e 6f 64 65 20 69 6e 20 32 2d 73 69 64 65 64 20 74 72 65 65 2e 22 29 0a 0a .for.a.node.in.2-sided.tree.")..
0be0 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 72 69 67 68 74 2d (cl-defgeneric.ztree-node-right-
0c00 73 68 6f 72 74 2d 6e 61 6d 65 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 short-name.(node)..."Return.the.
0c20 72 69 67 68 74 20 73 68 6f 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 6f 64 65 20 69 6e 20 32 right.short.name.for.a.node.in.2
0c40 2d 73 69 64 65 64 20 74 72 65 65 2e 22 29 0a 0a 0a 3b 3b 3b 20 44 65 66 61 75 6c 74 20 69 6d 70 -sided.tree.")...;;;.Default.imp
0c60 6c 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 6f 70 74 69 6f 6e 61 6c 20 6d 65 74 68 6f 64 73 0a 0a lentations.of.optional.methods..
0c80 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 28 28 (cl-defmethod.ztree-node-side.((
0ca0 6e 6f 64 65 20 74 29 29 0a 20 20 28 69 67 6e 6f 72 65 20 6e 6f 64 65 29 0a 20 20 3a 6c 65 66 74 node.t))...(ignore.node)...:left
0cc0 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 66 61 63 65 )..(cl-defmethod.ztree-node-face
0ce0 20 28 28 6e 6f 64 65 20 74 29 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 61 63 65 20 74 6f 20 .((node.t))..."Return.a.face.to.
0d00 77 72 69 74 65 20 61 20 4e 4f 44 45 20 69 6e 22 0a 20 20 28 69 67 6e 6f 72 65 20 6e 6f 64 65 29 write.a.NODE.in"...(ignore.node)
0d20 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 61 63 74 69 )..(cl-defmethod.ztree-node-acti
0d40 6f 6e 20 28 28 6e 6f 64 65 20 74 29 20 68 61 72 64 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 61 6e on.((node.t).hard)..."Perform.an
0d60 20 61 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 52 65 74 75 72 6e 20 69 73 20 70 72 65 73 73 .action.when.the.Return.is.press
0d80 65 64 20 6f 6e 20 61 20 4e 4f 44 45 2e 0a 41 72 67 75 6d 65 6e 74 20 48 41 52 44 20 73 70 65 63 ed.on.a.NODE..Argument.HARD.spec
0da0 69 66 69 65 73 20 69 66 20 74 68 65 20 52 65 74 75 72 6e 20 77 61 73 20 70 72 65 73 73 65 64 20 ifies.if.the.Return.was.pressed.
0dc0 28 74 29 20 6f 72 0a 53 70 61 63 65 20 28 6e 69 6c 29 22 0a 20 20 28 69 67 6e 6f 72 65 20 6e 6f (t).or.Space.(nil)"...(ignore.no
0de0 64 65 29 0a 20 20 28 69 67 6e 6f 72 65 20 68 61 72 64 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 de)...(ignore.hard))..(cl-defmet
0e00 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 6c 65 66 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 hod.ztree-node-left-short-name.(
0e20 28 6e 6f 64 65 20 74 29 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 65 66 74 20 73 68 6f (node.t))..."Return.the.left.sho
0e40 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 6f 64 65 20 69 6e 20 32 2d 73 69 64 65 64 20 74 72 rt.name.for.a.node.in.2-sided.tr
0e60 65 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f ee."...(ztree-node-short-name.no
0e80 64 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 72 de))..(cl-defmethod.ztree-node-r
0ea0 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 28 6e 6f 64 65 20 74 29 29 0a 20 20 22 52 65 ight-short-name.((node.t))..."Re
0ec0 74 75 72 6e 20 74 68 65 20 72 69 67 68 74 20 73 68 6f 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 turn.the.right.short.name.for.a.
0ee0 6e 6f 64 65 20 69 6e 20 32 2d 73 69 64 65 64 20 74 72 65 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d node.in.2-sided.tree."...(ztree-
0f00 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 0a 28 70 72 6f 76 69 64 65 node-short-name.node))..(provide
0f20 20 27 7a 74 72 65 65 2d 70 72 6f 74 6f 63 6f 6c 29 0a 3b 3b 3b 20 7a 74 72 65 65 2d 70 72 6f 74 .'ztree-protocol).;;;.ztree-prot
0f40 6f 63 6f 6c 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 ocol.el.ends.here...............
0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1000 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 ztree-1.0.6/ztree-pkg.el........
1020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1060 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
1080 30 30 30 30 35 35 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 34 31 00 20 30 00 00 00 0000551.00000000000.013541..0...
10a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1100 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...................
1120 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...................
1140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1200 3b 3b 20 47 65 6e 65 72 61 74 65 64 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e ;;.Generated.package.description
1220 20 66 72 6f 6d 20 7a 74 72 65 65 2e 65 6c 20 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 .from.ztree.el..-*-.no-byte-comp
1240 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 7a 74 72 65 ile:.t.-*-.(define-package."ztre
1260 65 22 20 22 31 2e 30 2e 36 22 20 22 54 65 78 74 20 6d 6f 64 65 20 64 69 72 65 63 74 6f 72 79 20 e"."1.0.6"."Text.mode.directory.
1280 74 72 65 65 22 20 27 28 28 63 6c 2d 6c 69 62 20 22 30 22 29 29 20 3a 6b 65 79 77 6f 72 64 73 20 tree".'((cl-lib."0")).:keywords.
12a0 27 28 22 66 69 6c 65 73 22 20 22 74 6f 6f 6c 73 22 29 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 '("files"."tools").:authors.'(("
12c0 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 22 20 2e 20 22 61 6c 65 78 65 79 2e 76 Alexey.Veretennikov"..."alexey.v
12e0 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 20 3a 6d 61 69 6e 74 61 eretennikov@gmail.com")).:mainta
1300 69 6e 65 72 20 27 28 22 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 22 20 2e 20 22 iner.'("Alexey.Veretennikov"..."
1320 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 20 alexey.veretennikov@gmail.com").
1340 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 66 6f 75 72 69 65 72 :url."https://github.com/fourier
1360 2f 7a 74 72 65 65 22 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /ztree")........................
1380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1400 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 4c 49 43 45 4e 53 45 00 00 00 00 00 00 00 00 00 00 00 00 00 ztree-1.0.6/LICENSE.............
1420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1460 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
1480 30 31 30 34 35 31 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 33 32 31 00 20 30 00 00 00 0104515.00000000000.012321..0...
14a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1500 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...................
1520 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...................
1540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 4c 20 ....................GNU.GENERAL.
1620 50 55 42 4c 49 43 20 4c 49 43 45 4e 53 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 PUBLIC.LICENSE..................
1640 20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 33 2c 20 32 39 20 4a 75 6e 65 20 32 30 30 37 0a 0a 20 ......Version.3,.29.June.2007...
1660 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 37 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 Copyright.(C).2007.Free.Software
1680 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 20 3c 68 74 74 70 73 3a 2f 2f 66 73 66 2e 6f .Foundation,.Inc..<https://fsf.o
16a0 72 67 2f 3e 0a 20 45 76 65 72 79 6f 6e 65 20 69 73 20 70 65 72 6d 69 74 74 65 64 20 74 6f 20 63 rg/>..Everyone.is.permitted.to.c
16c0 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 opy.and.distribute.verbatim.copi
16e0 65 73 0a 20 6f 66 20 74 68 69 73 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 62 75 es..of.this.license.document,.bu
1700 74 20 63 68 61 6e 67 69 6e 67 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 0a 0a 20 t.changing.it.is.not.allowed....
1720 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 50 72 65 61 6d ...........................Pream
1740 62 6c 65 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 ble....The.GNU.General.Public.Li
1760 63 65 6e 73 65 20 69 73 20 61 20 66 72 65 65 2c 20 63 6f 70 79 6c 65 66 74 20 6c 69 63 65 6e 73 cense.is.a.free,.copyleft.licens
1780 65 20 66 6f 72 0a 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f e.for.software.and.other.kinds.o
17a0 66 20 77 6f 72 6b 73 2e 0a 0a 20 20 54 68 65 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 6d 6f 73 f.works.....The.licenses.for.mos
17c0 74 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 70 72 61 63 74 69 63 61 6c 20 77 t.software.and.other.practical.w
17e0 6f 72 6b 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 0a 74 6f 20 74 61 6b 65 20 61 77 61 79 20 79 orks.are.designed.to.take.away.y
1800 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 20 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 our.freedom.to.share.and.change.
1820 74 68 65 20 77 6f 72 6b 73 2e 20 20 42 79 20 63 6f 6e 74 72 61 73 74 2c 0a 74 68 65 20 47 4e 55 the.works...By.contrast,.the.GNU
1840 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 73 20 69 6e 74 65 6e .General.Public.License.is.inten
1860 64 65 64 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20 79 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f ded.to.guarantee.your.freedom.to
1880 0a 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 61 6c 6c 20 76 65 72 73 69 6f 6e 73 20 6f .share.and.change.all.versions.o
18a0 66 20 61 20 70 72 6f 67 72 61 6d 2d 2d 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 69 74 20 72 65 6d f.a.program--to.make.sure.it.rem
18c0 61 69 6e 73 20 66 72 65 65 0a 73 6f 66 74 77 61 72 65 20 66 6f 72 20 61 6c 6c 20 69 74 73 20 75 ains.free.software.for.all.its.u
18e0 73 65 72 73 2e 20 20 57 65 2c 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 sers...We,.the.Free.Software.Fou
1900 6e 64 61 74 69 6f 6e 2c 20 75 73 65 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 ndation,.use.the.GNU.General.Pub
1920 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 73 74 20 6f 66 20 6f 75 72 20 73 6f 66 74 lic.License.for.most.of.our.soft
1940 77 61 72 65 3b 20 69 74 20 61 70 70 6c 69 65 73 20 61 6c 73 6f 20 74 6f 0a 61 6e 79 20 6f 74 68 ware;.it.applies.also.to.any.oth
1960 65 72 20 77 6f 72 6b 20 72 65 6c 65 61 73 65 64 20 74 68 69 73 20 77 61 79 20 62 79 20 69 74 73 er.work.released.this.way.by.its
1980 20 61 75 74 68 6f 72 73 2e 20 20 59 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 69 74 20 74 6f 0a 79 .authors...You.can.apply.it.to.y
19a0 6f 75 72 20 70 72 6f 67 72 61 6d 73 2c 20 74 6f 6f 2e 0a 0a 20 20 57 68 65 6e 20 77 65 20 73 70 our.programs,.too.....When.we.sp
19c0 65 61 6b 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 77 65 20 61 72 65 20 72 65 66 eak.of.free.software,.we.are.ref
19e0 65 72 72 69 6e 67 20 74 6f 20 66 72 65 65 64 6f 6d 2c 20 6e 6f 74 0a 70 72 69 63 65 2e 20 20 4f erring.to.freedom,.not.price...O
1a00 75 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 73 20 61 72 65 20 64 ur.General.Public.Licenses.are.d
1a20 65 73 69 67 6e 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 79 6f 75 0a 68 61 esigned.to.make.sure.that.you.ha
1a40 76 65 20 74 68 65 20 66 72 65 65 64 6f 6d 20 74 6f 20 64 69 73 74 72 69 62 75 74 65 20 63 6f 70 ve.the.freedom.to.distribute.cop
1a60 69 65 73 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 28 61 6e 64 20 63 68 61 72 67 65 ies.of.free.software.(and.charge
1a80 20 66 6f 72 0a 74 68 65 6d 20 69 66 20 79 6f 75 20 77 69 73 68 29 2c 20 74 68 61 74 20 79 6f 75 .for.them.if.you.wish),.that.you
1aa0 20 72 65 63 65 69 76 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 72 20 63 61 6e 20 67 65 74 20 .receive.source.code.or.can.get.
1ac0 69 74 20 69 66 20 79 6f 75 0a 77 61 6e 74 20 69 74 2c 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 it.if.you.want.it,.that.you.can.
1ae0 63 68 61 6e 67 65 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 6f 72 20 75 73 65 20 70 69 65 63 65 change.the.software.or.use.piece
1b00 73 20 6f 66 20 69 74 20 69 6e 20 6e 65 77 0a 66 72 65 65 20 70 72 6f 67 72 61 6d 73 2c 20 61 6e s.of.it.in.new.free.programs,.an
1b20 64 20 74 68 61 74 20 79 6f 75 20 6b 6e 6f 77 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 65 73 65 d.that.you.know.you.can.do.these
1b40 20 74 68 69 6e 67 73 2e 0a 0a 20 20 54 6f 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 .things.....To.protect.your.righ
1b60 74 73 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 70 72 65 76 65 6e 74 20 6f 74 68 65 72 73 20 66 72 ts,.we.need.to.prevent.others.fr
1b80 6f 6d 20 64 65 6e 79 69 6e 67 20 79 6f 75 0a 74 68 65 73 65 20 72 69 67 68 74 73 20 6f 72 20 61 om.denying.you.these.rights.or.a
1ba0 73 6b 69 6e 67 20 79 6f 75 20 74 6f 20 73 75 72 72 65 6e 64 65 72 20 74 68 65 20 72 69 67 68 74 sking.you.to.surrender.the.right
1bc0 73 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 79 6f 75 20 68 61 76 65 0a 63 65 72 74 61 69 6e 20 s...Therefore,.you.have.certain.
1be0 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 75 responsibilities.if.you.distribu
1c00 74 65 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 6f 72 20 69 66 te.copies.of.the.software,.or.if
1c20 0a 79 6f 75 20 6d 6f 64 69 66 79 20 69 74 3a 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 .you.modify.it:.responsibilities
1c40 20 74 6f 20 72 65 73 70 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 6f 74 68 65 72 .to.respect.the.freedom.of.other
1c60 73 2e 0a 0a 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 s.....For.example,.if.you.distri
1c80 62 75 74 65 20 63 6f 70 69 65 73 20 6f 66 20 73 75 63 68 20 61 20 70 72 6f 67 72 61 6d 2c 20 77 bute.copies.of.such.a.program,.w
1ca0 68 65 74 68 65 72 0a 67 72 61 74 69 73 20 6f 72 20 66 6f 72 20 61 20 66 65 65 2c 20 79 6f 75 20 hether.gratis.or.for.a.fee,.you.
1cc0 6d 75 73 74 20 70 61 73 73 20 6f 6e 20 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 must.pass.on.to.the.recipients.t
1ce0 68 65 20 73 61 6d 65 0a 66 72 65 65 64 6f 6d 73 20 74 68 61 74 20 79 6f 75 20 72 65 63 65 69 76 he.same.freedoms.that.you.receiv
1d00 65 64 2e 20 20 59 6f 75 20 6d 75 73 74 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 ed...You.must.make.sure.that.the
1d20 79 2c 20 74 6f 6f 2c 20 72 65 63 65 69 76 65 0a 6f 72 20 63 61 6e 20 67 65 74 20 74 68 65 20 73 y,.too,.receive.or.can.get.the.s
1d40 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 41 6e 64 20 79 6f 75 20 6d 75 73 74 20 73 68 6f 77 20 74 ource.code...And.you.must.show.t
1d60 68 65 6d 20 74 68 65 73 65 20 74 65 72 6d 73 20 73 6f 20 74 68 65 79 0a 6b 6e 6f 77 20 74 68 65 hem.these.terms.so.they.know.the
1d80 69 72 20 72 69 67 68 74 73 2e 0a 0a 20 20 44 65 76 65 6c 6f 70 65 72 73 20 74 68 61 74 20 75 73 ir.rights.....Developers.that.us
1da0 65 20 74 68 65 20 47 4e 55 20 47 50 4c 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 e.the.GNU.GPL.protect.your.right
1dc0 73 20 77 69 74 68 20 74 77 6f 20 73 74 65 70 73 3a 0a 28 31 29 20 61 73 73 65 72 74 20 63 6f 70 s.with.two.steps:.(1).assert.cop
1de0 79 72 69 67 68 74 20 6f 6e 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 28 32 29 20 yright.on.the.software,.and.(2).
1e00 6f 66 66 65 72 20 79 6f 75 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 67 69 76 69 6e 67 20 79 6f offer.you.this.License.giving.yo
1e20 75 20 6c 65 67 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 u.legal.permission.to.copy,.dist
1e40 72 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 2e 0a 0a 20 20 46 6f 72 20 ribute.and/or.modify.it.....For.
1e60 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 27 20 61 6e 64 20 61 75 74 68 6f 72 73 27 20 70 72 6f the.developers'.and.authors'.pro
1e80 74 65 63 74 69 6f 6e 2c 20 74 68 65 20 47 50 4c 20 63 6c 65 61 72 6c 79 20 65 78 70 6c 61 69 6e tection,.the.GPL.clearly.explain
1ea0 73 0a 74 68 61 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 s.that.there.is.no.warranty.for.
1ec0 74 68 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2e 20 20 46 6f 72 20 62 6f 74 68 20 75 73 this.free.software...For.both.us
1ee0 65 72 73 27 20 61 6e 64 0a 61 75 74 68 6f 72 73 27 20 73 61 6b 65 2c 20 74 68 65 20 47 50 4c 20 ers'.and.authors'.sake,.the.GPL.
1f00 72 65 71 75 69 72 65 73 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 requires.that.modified.versions.
1f20 62 65 20 6d 61 72 6b 65 64 20 61 73 0a 63 68 61 6e 67 65 64 2c 20 73 6f 20 74 68 61 74 20 74 68 be.marked.as.changed,.so.that.th
1f40 65 69 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 74 74 72 69 62 75 eir.problems.will.not.be.attribu
1f60 74 65 64 20 65 72 72 6f 6e 65 6f 75 73 6c 79 20 74 6f 0a 61 75 74 68 6f 72 73 20 6f 66 20 70 72 ted.erroneously.to.authors.of.pr
1f80 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 53 6f 6d 65 20 64 65 76 69 63 65 73 evious.versions.....Some.devices
1fa0 20 61 72 65 20 64 65 73 69 67 6e 65 64 20 74 6f 20 64 65 6e 79 20 75 73 65 72 73 20 61 63 63 65 .are.designed.to.deny.users.acce
1fc0 73 73 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 72 75 6e 0a 6d 6f 64 69 66 69 65 64 20 76 65 ss.to.install.or.run.modified.ve
1fe0 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 6e 73 69 64 65 20 74 68 rsions.of.the.software.inside.th
2000 65 6d 2c 20 61 6c 74 68 6f 75 67 68 20 74 68 65 20 6d 61 6e 75 66 61 63 74 75 72 65 72 0a 63 61 em,.although.the.manufacturer.ca
2020 6e 20 64 6f 20 73 6f 2e 20 20 54 68 69 73 20 69 73 20 66 75 6e 64 61 6d 65 6e 74 61 6c 6c 79 20 n.do.so...This.is.fundamentally.
2040 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 61 69 6d 20 6f 66 0a 70 72 6f incompatible.with.the.aim.of.pro
2060 74 65 63 74 69 6e 67 20 75 73 65 72 73 27 20 66 72 65 65 64 6f 6d 20 74 6f 20 63 68 61 6e 67 65 tecting.users'.freedom.to.change
2080 20 74 68 65 20 73 6f 66 74 77 61 72 65 2e 20 20 54 68 65 20 73 79 73 74 65 6d 61 74 69 63 0a 70 .the.software...The.systematic.p
20a0 61 74 74 65 72 6e 20 6f 66 20 73 75 63 68 20 61 62 75 73 65 20 6f 63 63 75 72 73 20 69 6e 20 74 attern.of.such.abuse.occurs.in.t
20c0 68 65 20 61 72 65 61 20 6f 66 20 70 72 6f 64 75 63 74 73 20 66 6f 72 20 69 6e 64 69 76 69 64 75 he.area.of.products.for.individu
20e0 61 6c 73 20 74 6f 0a 75 73 65 2c 20 77 68 69 63 68 20 69 73 20 70 72 65 63 69 73 65 6c 79 20 77 als.to.use,.which.is.precisely.w
2100 68 65 72 65 20 69 74 20 69 73 20 6d 6f 73 74 20 75 6e 61 63 63 65 70 74 61 62 6c 65 2e 20 20 54 here.it.is.most.unacceptable...T
2120 68 65 72 65 66 6f 72 65 2c 20 77 65 0a 68 61 76 65 20 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 herefore,.we.have.designed.this.
2140 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 50 4c 20 74 6f 20 70 72 6f 68 69 62 69 74 20 74 version.of.the.GPL.to.prohibit.t
2160 68 65 20 70 72 61 63 74 69 63 65 20 66 6f 72 20 74 68 6f 73 65 0a 70 72 6f 64 75 63 74 73 2e 20 he.practice.for.those.products..
2180 20 49 66 20 73 75 63 68 20 70 72 6f 62 6c 65 6d 73 20 61 72 69 73 65 20 73 75 62 73 74 61 6e 74 .If.such.problems.arise.substant
21a0 69 61 6c 6c 79 20 69 6e 20 6f 74 68 65 72 20 64 6f 6d 61 69 6e 73 2c 20 77 65 0a 73 74 61 6e 64 ially.in.other.domains,.we.stand
21c0 20 72 65 61 64 79 20 74 6f 20 65 78 74 65 6e 64 20 74 68 69 73 20 70 72 6f 76 69 73 69 6f 6e 20 .ready.to.extend.this.provision.
21e0 74 6f 20 74 68 6f 73 65 20 64 6f 6d 61 69 6e 73 20 69 6e 20 66 75 74 75 72 65 20 76 65 72 73 69 to.those.domains.in.future.versi
2200 6f 6e 73 0a 6f 66 20 74 68 65 20 47 50 4c 2c 20 61 73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 6f ons.of.the.GPL,.as.needed.to.pro
2220 74 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 75 73 65 72 73 2e 0a 0a 20 20 46 69 tect.the.freedom.of.users.....Fi
2240 6e 61 6c 6c 79 2c 20 65 76 65 72 79 20 70 72 6f 67 72 61 6d 20 69 73 20 74 68 72 65 61 74 65 6e nally,.every.program.is.threaten
2260 65 64 20 63 6f 6e 73 74 61 6e 74 6c 79 20 62 79 20 73 6f 66 74 77 61 72 65 20 70 61 74 65 6e 74 ed.constantly.by.software.patent
2280 73 2e 0a 53 74 61 74 65 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 61 6c 6c 6f 77 20 70 61 74 65 6e s..States.should.not.allow.paten
22a0 74 73 20 74 6f 20 72 65 73 74 72 69 63 74 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 75 ts.to.restrict.development.and.u
22c0 73 65 20 6f 66 0a 73 6f 66 74 77 61 72 65 20 6f 6e 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 se.of.software.on.general-purpos
22e0 65 20 63 6f 6d 70 75 74 65 72 73 2c 20 62 75 74 20 69 6e 20 74 68 6f 73 65 20 74 68 61 74 20 64 e.computers,.but.in.those.that.d
2300 6f 2c 20 77 65 20 77 69 73 68 20 74 6f 0a 61 76 6f 69 64 20 74 68 65 20 73 70 65 63 69 61 6c 20 o,.we.wish.to.avoid.the.special.
2320 64 61 6e 67 65 72 20 74 68 61 74 20 70 61 74 65 6e 74 73 20 61 70 70 6c 69 65 64 20 74 6f 20 61 danger.that.patents.applied.to.a
2340 20 66 72 65 65 20 70 72 6f 67 72 61 6d 20 63 6f 75 6c 64 0a 6d 61 6b 65 20 69 74 20 65 66 66 65 .free.program.could.make.it.effe
2360 63 74 69 76 65 6c 79 20 70 72 6f 70 72 69 65 74 61 72 79 2e 20 20 54 6f 20 70 72 65 76 65 6e 74 ctively.proprietary...To.prevent
2380 20 74 68 69 73 2c 20 74 68 65 20 47 50 4c 20 61 73 73 75 72 65 73 20 74 68 61 74 0a 70 61 74 65 .this,.the.GPL.assures.that.pate
23a0 6e 74 73 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 6e 64 65 72 20 74 68 65 nts.cannot.be.used.to.render.the
23c0 20 70 72 6f 67 72 61 6d 20 6e 6f 6e 2d 66 72 65 65 2e 0a 0a 20 20 54 68 65 20 70 72 65 63 69 73 .program.non-free.....The.precis
23e0 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 63 6f 70 79 69 e.terms.and.conditions.for.copyi
2400 6e 67 2c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 0a 6d 6f 64 69 66 69 63 61 74 69 6f ng,.distribution.and.modificatio
2420 6e 20 66 6f 6c 6c 6f 77 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.follow........................
2440 20 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 30 2e 20 44 65 66 ..TERMS.AND.CONDITIONS....0..Def
2460 69 6e 69 74 69 6f 6e 73 2e 0a 0a 20 20 22 54 68 69 73 20 4c 69 63 65 6e 73 65 22 20 72 65 66 65 initions....."This.License".refe
2480 72 73 20 74 6f 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 rs.to.version.3.of.the.GNU.Gener
24a0 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 22 43 6f 70 79 72 69 67 68 74 al.Public.License....."Copyright
24c0 22 20 61 6c 73 6f 20 6d 65 61 6e 73 20 63 6f 70 79 72 69 67 68 74 2d 6c 69 6b 65 20 6c 61 77 73 ".also.means.copyright-like.laws
24e0 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66 0a 77 6f .that.apply.to.other.kinds.of.wo
2500 72 6b 73 2c 20 73 75 63 68 20 61 73 20 73 65 6d 69 63 6f 6e 64 75 63 74 6f 72 20 6d 61 73 6b 73 rks,.such.as.semiconductor.masks
2520 2e 0a 0a 20 20 22 54 68 65 20 50 72 6f 67 72 61 6d 22 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 ....."The.Program".refers.to.any
2540 20 63 6f 70 79 72 69 67 68 74 61 62 6c 65 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 .copyrightable.work.licensed.und
2560 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 2e 20 20 45 61 63 68 20 6c 69 63 65 6e 73 65 65 20 er.this.License...Each.licensee.
2580 69 73 20 61 64 64 72 65 73 73 65 64 20 61 73 20 22 79 6f 75 22 2e 20 20 22 4c 69 63 65 6e 73 65 is.addressed.as."you"..."License
25a0 65 73 22 20 61 6e 64 0a 22 72 65 63 69 70 69 65 6e 74 73 22 20 6d 61 79 20 62 65 20 69 6e 64 69 es".and."recipients".may.be.indi
25c0 76 69 64 75 61 6c 73 20 6f 72 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 73 2e 0a 0a 20 20 54 6f 20 viduals.or.organizations.....To.
25e0 22 6d 6f 64 69 66 79 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 63 6f 70 79 20 66 72 "modify".a.work.means.to.copy.fr
2600 6f 6d 20 6f 72 20 61 64 61 70 74 20 61 6c 6c 20 6f 72 20 70 61 72 74 20 6f 66 20 74 68 65 20 77 om.or.adapt.all.or.part.of.the.w
2620 6f 72 6b 0a 69 6e 20 61 20 66 61 73 68 69 6f 6e 20 72 65 71 75 69 72 69 6e 67 20 63 6f 70 79 72 ork.in.a.fashion.requiring.copyr
2640 69 67 68 74 20 70 65 72 6d 69 73 73 69 6f 6e 2c 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 ight.permission,.other.than.the.
2660 6d 61 6b 69 6e 67 20 6f 66 20 61 6e 0a 65 78 61 63 74 20 63 6f 70 79 2e 20 20 54 68 65 20 72 65 making.of.an.exact.copy...The.re
2680 73 75 6c 74 69 6e 67 20 77 6f 72 6b 20 69 73 20 63 61 6c 6c 65 64 20 61 20 22 6d 6f 64 69 66 69 sulting.work.is.called.a."modifi
26a0 65 64 20 76 65 72 73 69 6f 6e 22 20 6f 66 20 74 68 65 0a 65 61 72 6c 69 65 72 20 77 6f 72 6b 20 ed.version".of.the.earlier.work.
26c0 6f 72 20 61 20 77 6f 72 6b 20 22 62 61 73 65 64 20 6f 6e 22 20 74 68 65 20 65 61 72 6c 69 65 72 or.a.work."based.on".the.earlier
26e0 20 77 6f 72 6b 2e 0a 0a 20 20 41 20 22 63 6f 76 65 72 65 64 20 77 6f 72 6b 22 20 6d 65 61 6e 73 .work.....A."covered.work".means
2700 20 65 69 74 68 65 72 20 74 68 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 20 6f .either.the.unmodified.Program.o
2720 72 20 61 20 77 6f 72 6b 20 62 61 73 65 64 0a 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a r.a.work.based.on.the.Program...
2740 20 20 54 6f 20 22 70 72 6f 70 61 67 61 74 65 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f ..To."propagate".a.work.means.to
2760 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 77 69 74 68 20 69 74 20 74 68 61 74 2c 20 77 69 74 68 6f .do.anything.with.it.that,.witho
2780 75 74 0a 70 65 72 6d 69 73 73 69 6f 6e 2c 20 77 6f 75 6c 64 20 6d 61 6b 65 20 79 6f 75 20 64 69 ut.permission,.would.make.you.di
27a0 72 65 63 74 6c 79 20 6f 72 20 73 65 63 6f 6e 64 61 72 69 6c 79 20 6c 69 61 62 6c 65 20 66 6f 72 rectly.or.secondarily.liable.for
27c0 0a 69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 63 .infringement.under.applicable.c
27e0 6f 70 79 72 69 67 68 74 20 6c 61 77 2c 20 65 78 63 65 70 74 20 65 78 65 63 75 74 69 6e 67 20 69 opyright.law,.except.executing.i
2800 74 20 6f 6e 20 61 0a 63 6f 6d 70 75 74 65 72 20 6f 72 20 6d 6f 64 69 66 79 69 6e 67 20 61 20 70 t.on.a.computer.or.modifying.a.p
2820 72 69 76 61 74 65 20 63 6f 70 79 2e 20 20 50 72 6f 70 61 67 61 74 69 6f 6e 20 69 6e 63 6c 75 64 rivate.copy...Propagation.includ
2840 65 73 20 63 6f 70 79 69 6e 67 2c 0a 64 69 73 74 72 69 62 75 74 69 6f 6e 20 28 77 69 74 68 20 6f es.copying,.distribution.(with.o
2860 72 20 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 29 2c 20 6d 61 6b 69 6e 67 20 r.without.modification),.making.
2880 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 70 75 62 6c 69 63 2c 20 61 6e 64 20 69 6e 20 available.to.the.public,.and.in.
28a0 73 6f 6d 65 20 63 6f 75 6e 74 72 69 65 73 20 6f 74 68 65 72 20 61 63 74 69 76 69 74 69 65 73 20 some.countries.other.activities.
28c0 61 73 20 77 65 6c 6c 2e 0a 0a 20 20 54 6f 20 22 63 6f 6e 76 65 79 22 20 61 20 77 6f 72 6b 20 6d as.well.....To."convey".a.work.m
28e0 65 61 6e 73 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 74 68 61 eans.any.kind.of.propagation.tha
2900 74 20 65 6e 61 62 6c 65 73 20 6f 74 68 65 72 0a 70 61 72 74 69 65 73 20 74 6f 20 6d 61 6b 65 20 t.enables.other.parties.to.make.
2920 6f 72 20 72 65 63 65 69 76 65 20 63 6f 70 69 65 73 2e 20 20 4d 65 72 65 20 69 6e 74 65 72 61 63 or.receive.copies...Mere.interac
2940 74 69 6f 6e 20 77 69 74 68 20 61 20 75 73 65 72 20 74 68 72 6f 75 67 68 0a 61 20 63 6f 6d 70 75 tion.with.a.user.through.a.compu
2960 74 65 72 20 6e 65 74 77 6f 72 6b 2c 20 77 69 74 68 20 6e 6f 20 74 72 61 6e 73 66 65 72 20 6f 66 ter.network,.with.no.transfer.of
2980 20 61 20 63 6f 70 79 2c 20 69 73 20 6e 6f 74 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 41 6e .a.copy,.is.not.conveying.....An
29a0 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 72 66 61 63 65 20 64 69 73 70 .interactive.user.interface.disp
29c0 6c 61 79 73 20 22 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 22 lays."Appropriate.Legal.Notices"
29e0 0a 74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 74 68 61 74 20 69 74 20 69 6e 63 6c 75 64 65 73 20 .to.the.extent.that.it.includes.
2a00 61 20 63 6f 6e 76 65 6e 69 65 6e 74 20 61 6e 64 20 70 72 6f 6d 69 6e 65 6e 74 6c 79 20 76 69 73 a.convenient.and.prominently.vis
2a20 69 62 6c 65 0a 66 65 61 74 75 72 65 20 74 68 61 74 20 28 31 29 20 64 69 73 70 6c 61 79 73 20 61 ible.feature.that.(1).displays.a
2a40 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 n.appropriate.copyright.notice,.
2a60 61 6e 64 20 28 32 29 0a 74 65 6c 6c 73 20 74 68 65 20 75 73 65 72 20 74 68 61 74 20 74 68 65 72 and.(2).tells.the.user.that.ther
2a80 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 68 65 20 77 6f 72 6b 20 28 65 e.is.no.warranty.for.the.work.(e
2aa0 78 63 65 70 74 20 74 6f 20 74 68 65 0a 65 78 74 65 6e 74 20 74 68 61 74 20 77 61 72 72 61 6e 74 xcept.to.the.extent.that.warrant
2ac0 69 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 29 2c 20 74 68 61 74 20 6c 69 63 65 6e 73 65 65 ies.are.provided),.that.licensee
2ae0 73 20 6d 61 79 20 63 6f 6e 76 65 79 20 74 68 65 0a 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 s.may.convey.the.work.under.this
2b00 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 76 69 65 77 20 61 20 63 6f 70 79 .License,.and.how.to.view.a.copy
2b20 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 0a 74 68 65 20 69 6e 74 65 72 66 .of.this.License...If.the.interf
2b40 61 63 65 20 70 72 65 73 65 6e 74 73 20 61 20 6c 69 73 74 20 6f 66 20 75 73 65 72 20 63 6f 6d 6d ace.presents.a.list.of.user.comm
2b60 61 6e 64 73 20 6f 72 20 6f 70 74 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 61 0a 6d 65 6e 75 2c ands.or.options,.such.as.a.menu,
2b80 20 61 20 70 72 6f 6d 69 6e 65 6e 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 65 .a.prominent.item.in.the.list.me
2ba0 65 74 73 20 74 68 69 73 20 63 72 69 74 65 72 69 6f 6e 2e 0a 0a 20 20 31 2e 20 53 6f 75 72 63 65 ets.this.criterion.....1..Source
2bc0 20 43 6f 64 65 2e 0a 0a 20 20 54 68 65 20 22 73 6f 75 72 63 65 20 63 6f 64 65 22 20 66 6f 72 20 .Code.....The."source.code".for.
2be0 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 68 65 20 70 72 65 66 65 72 72 65 64 20 66 6f 72 6d 20 a.work.means.the.preferred.form.
2c00 6f 66 20 74 68 65 20 77 6f 72 6b 0a 66 6f 72 20 6d 61 6b 69 6e 67 20 6d 6f 64 69 66 69 63 61 74 of.the.work.for.making.modificat
2c20 69 6f 6e 73 20 74 6f 20 69 74 2e 20 20 22 4f 62 6a 65 63 74 20 63 6f 64 65 22 20 6d 65 61 6e 73 ions.to.it..."Object.code".means
2c40 20 61 6e 79 20 6e 6f 6e 2d 73 6f 75 72 63 65 0a 66 6f 72 6d 20 6f 66 20 61 20 77 6f 72 6b 2e 0a .any.non-source.form.of.a.work..
2c60 0a 20 20 41 20 22 53 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 22 20 6d 65 61 6e 73 20 ...A."Standard.Interface".means.
2c80 61 6e 20 69 6e 74 65 72 66 61 63 65 20 74 68 61 74 20 65 69 74 68 65 72 20 69 73 20 61 6e 20 6f an.interface.that.either.is.an.o
2ca0 66 66 69 63 69 61 6c 0a 73 74 61 6e 64 61 72 64 20 64 65 66 69 6e 65 64 20 62 79 20 61 20 72 65 fficial.standard.defined.by.a.re
2cc0 63 6f 67 6e 69 7a 65 64 20 73 74 61 6e 64 61 72 64 73 20 62 6f 64 79 2c 20 6f 72 2c 20 69 6e 20 cognized.standards.body,.or,.in.
2ce0 74 68 65 20 63 61 73 65 20 6f 66 0a 69 6e 74 65 72 66 61 63 65 73 20 73 70 65 63 69 66 69 65 64 the.case.of.interfaces.specified
2d00 20 66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 .for.a.particular.programming.la
2d20 6e 67 75 61 67 65 2c 20 6f 6e 65 20 74 68 61 74 0a 69 73 20 77 69 64 65 6c 79 20 75 73 65 64 20 nguage,.one.that.is.widely.used.
2d40 61 6d 6f 6e 67 20 64 65 76 65 6c 6f 70 65 72 73 20 77 6f 72 6b 69 6e 67 20 69 6e 20 74 68 61 74 among.developers.working.in.that
2d60 20 6c 61 6e 67 75 61 67 65 2e 0a 0a 20 20 54 68 65 20 22 53 79 73 74 65 6d 20 4c 69 62 72 61 72 .language.....The."System.Librar
2d80 69 65 73 22 20 6f 66 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 69 6e 63 6c 75 ies".of.an.executable.work.inclu
2da0 64 65 20 61 6e 79 74 68 69 6e 67 2c 20 6f 74 68 65 72 0a 74 68 61 6e 20 74 68 65 20 77 6f 72 6b de.anything,.other.than.the.work
2dc0 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 74 68 61 74 20 28 61 29 20 69 73 20 69 6e 63 6c 75 64 65 .as.a.whole,.that.(a).is.include
2de0 64 20 69 6e 20 74 68 65 20 6e 6f 72 6d 61 6c 20 66 6f 72 6d 20 6f 66 0a 70 61 63 6b 61 67 69 6e d.in.the.normal.form.of.packagin
2e00 67 20 61 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 62 75 74 20 77 68 69 63 68 20 69 g.a.Major.Component,.but.which.i
2e20 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 61 74 20 4d 61 6a 6f 72 0a 43 6f 6d 70 6f 6e 65 s.not.part.of.that.Major.Compone
2e40 6e 74 2c 20 61 6e 64 20 28 62 29 20 73 65 72 76 65 73 20 6f 6e 6c 79 20 74 6f 20 65 6e 61 62 6c nt,.and.(b).serves.only.to.enabl
2e60 65 20 75 73 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 77 69 74 68 20 74 68 61 74 0a 4d 61 6a 6f e.use.of.the.work.with.that.Majo
2e80 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 6f 72 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 61 20 53 r.Component,.or.to.implement.a.S
2ea0 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 20 66 6f 72 20 77 68 69 63 68 20 61 6e 0a 69 tandard.Interface.for.which.an.i
2ec0 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 mplementation.is.available.to.th
2ee0 65 20 70 75 62 6c 69 63 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 2e 20 20 41 e.public.in.source.code.form...A
2f00 0a 22 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 22 2c 20 69 6e 20 74 68 69 73 20 63 6f 6e 74 ."Major.Component",.in.this.cont
2f20 65 78 74 2c 20 6d 65 61 6e 73 20 61 20 6d 61 6a 6f 72 20 65 73 73 65 6e 74 69 61 6c 20 63 6f 6d ext,.means.a.major.essential.com
2f40 70 6f 6e 65 6e 74 0a 28 6b 65 72 6e 65 6c 2c 20 77 69 6e 64 6f 77 20 73 79 73 74 65 6d 2c 20 61 ponent.(kernel,.window.system,.a
2f60 6e 64 20 73 6f 20 6f 6e 29 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 63 20 6f 70 65 72 61 74 nd.so.on).of.the.specific.operat
2f80 69 6e 67 20 73 79 73 74 65 6d 0a 28 69 66 20 61 6e 79 29 20 6f 6e 20 77 68 69 63 68 20 74 68 65 ing.system.(if.any).on.which.the
2fa0 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 72 75 6e 73 2c 20 6f 72 20 61 20 63 6f 6d 70 .executable.work.runs,.or.a.comp
2fc0 69 6c 65 72 20 75 73 65 64 20 74 6f 0a 70 72 6f 64 75 63 65 20 74 68 65 20 77 6f 72 6b 2c 20 6f iler.used.to.produce.the.work,.o
2fe0 72 20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 75 73 65 r.an.object.code.interpreter.use
3000 64 20 74 6f 20 72 75 6e 20 69 74 2e 0a 0a 20 20 54 68 65 20 22 43 6f 72 72 65 73 70 6f 6e 64 69 d.to.run.it.....The."Correspondi
3020 6e 67 20 53 6f 75 72 63 65 22 20 66 6f 72 20 61 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 ng.Source".for.a.work.in.object.
3040 63 6f 64 65 20 66 6f 72 6d 20 6d 65 61 6e 73 20 61 6c 6c 0a 74 68 65 20 73 6f 75 72 63 65 20 63 code.form.means.all.the.source.c
3060 6f 64 65 20 6e 65 65 64 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 2c 20 69 6e 73 74 61 6c 6c 2c ode.needed.to.generate,.install,
3080 20 61 6e 64 20 28 66 6f 72 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 0a 77 6f 72 6b 29 20 72 75 .and.(for.an.executable.work).ru
30a0 6e 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 74 6f 20 6d 6f 64 69 66 79 20 n.the.object.code.and.to.modify.
30c0 74 68 65 20 77 6f 72 6b 2c 20 69 6e 63 6c 75 64 69 6e 67 20 73 63 72 69 70 74 73 20 74 6f 0a 63 the.work,.including.scripts.to.c
30e0 6f 6e 74 72 6f 6c 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 73 2e 20 20 48 6f 77 65 76 65 ontrol.those.activities...Howeve
3100 72 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 74 68 65 20 77 6f 72 6b 27 r,.it.does.not.include.the.work'
3120 73 0a 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 65 73 2c 20 6f 72 20 67 65 6e 65 72 61 6c 2d 70 s.System.Libraries,.or.general-p
3140 75 72 70 6f 73 65 20 74 6f 6f 6c 73 20 6f 72 20 67 65 6e 65 72 61 6c 6c 79 20 61 76 61 69 6c 61 urpose.tools.or.generally.availa
3160 62 6c 65 20 66 72 65 65 0a 70 72 6f 67 72 61 6d 73 20 77 68 69 63 68 20 61 72 65 20 75 73 65 64 ble.free.programs.which.are.used
3180 20 75 6e 6d 6f 64 69 66 69 65 64 20 69 6e 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 6f 73 65 20 .unmodified.in.performing.those.
31a0 61 63 74 69 76 69 74 69 65 73 20 62 75 74 0a 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 70 61 72 activities.but.which.are.not.par
31c0 74 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 43 6f 72 t.of.the.work...For.example,.Cor
31e0 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 0a 69 6e 63 6c 75 64 65 73 20 69 6e 74 65 72 responding.Source.includes.inter
3200 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64 face.definition.files.associated
3220 20 77 69 74 68 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 66 6f 72 0a 74 68 65 20 77 6f 72 6b 2c .with.source.files.for.the.work,
3240 20 61 6e 64 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 20 73 68 61 72 65 64 20 .and.the.source.code.for.shared.
3260 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 79 6e 61 6d 69 63 61 6c 6c 79 0a 6c 69 6e 6b 65 64 libraries.and.dynamically.linked
3280 20 73 75 62 70 72 6f 67 72 61 6d 73 20 74 68 61 74 20 74 68 65 20 77 6f 72 6b 20 69 73 20 73 70 .subprograms.that.the.work.is.sp
32a0 65 63 69 66 69 63 61 6c 6c 79 20 64 65 73 69 67 6e 65 64 20 74 6f 20 72 65 71 75 69 72 65 2c 0a ecifically.designed.to.require,.
32c0 73 75 63 68 20 61 73 20 62 79 20 69 6e 74 69 6d 61 74 65 20 64 61 74 61 20 63 6f 6d 6d 75 6e 69 such.as.by.intimate.data.communi
32e0 63 61 74 69 6f 6e 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 62 65 74 77 65 65 6e 20 74 cation.or.control.flow.between.t
3300 68 6f 73 65 0a 73 75 62 70 72 6f 67 72 61 6d 73 20 61 6e 64 20 6f 74 68 65 72 20 70 61 72 74 73 hose.subprograms.and.other.parts
3320 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 0a 0a 20 20 54 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 .of.the.work.....The.Correspondi
3340 6e 67 20 53 6f 75 72 63 65 20 6e 65 65 64 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 6e 79 74 68 ng.Source.need.not.include.anyth
3360 69 6e 67 20 74 68 61 74 20 75 73 65 72 73 0a 63 61 6e 20 72 65 67 65 6e 65 72 61 74 65 20 61 75 ing.that.users.can.regenerate.au
3380 74 6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f 6d 20 6f 74 68 65 72 20 70 61 72 74 73 20 6f 66 20 tomatically.from.other.parts.of.
33a0 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 53 6f 75 72 63 65 2e 0a 0a 20 20 54 68 65 the.Corresponding.Source.....The
33c0 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 20 77 6f 72 6b .Corresponding.Source.for.a.work
33e0 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 20 69 73 20 74 68 61 74 0a 73 61 6d .in.source.code.form.is.that.sam
3400 65 20 77 6f 72 6b 2e 0a 0a 20 20 32 2e 20 42 61 73 69 63 20 50 65 72 6d 69 73 73 69 6f 6e 73 2e e.work.....2..Basic.Permissions.
3420 0a 0a 20 20 41 6c 6c 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 ....All.rights.granted.under.thi
3440 73 20 4c 69 63 65 6e 73 65 20 61 72 65 20 67 72 61 6e 74 65 64 20 66 6f 72 20 74 68 65 20 74 65 s.License.are.granted.for.the.te
3460 72 6d 20 6f 66 0a 63 6f 70 79 72 69 67 68 74 20 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 rm.of.copyright.on.the.Program,.
3480 61 6e 64 20 61 72 65 20 69 72 72 65 76 6f 63 61 62 6c 65 20 70 72 6f 76 69 64 65 64 20 74 68 65 and.are.irrevocable.provided.the
34a0 20 73 74 61 74 65 64 0a 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 6d 65 74 2e 20 20 54 68 69 .stated.conditions.are.met...Thi
34c0 73 20 4c 69 63 65 6e 73 65 20 65 78 70 6c 69 63 69 74 6c 79 20 61 66 66 69 72 6d 73 20 79 6f 75 s.License.explicitly.affirms.you
34e0 72 20 75 6e 6c 69 6d 69 74 65 64 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 72 75 6e 20 74 68 r.unlimited.permission.to.run.th
3500 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 2e 20 20 54 68 65 20 6f 75 74 70 75 e.unmodified.Program...The.outpu
3520 74 20 66 72 6f 6d 20 72 75 6e 6e 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 73 t.from.running.a.covered.work.is
3540 20 63 6f 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 6f 6e 6c 79 20 69 66 .covered.by.this.License.only.if
3560 20 74 68 65 20 6f 75 74 70 75 74 2c 20 67 69 76 65 6e 20 69 74 73 0a 63 6f 6e 74 65 6e 74 2c 20 .the.output,.given.its.content,.
3580 63 6f 6e 73 74 69 74 75 74 65 73 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e 20 20 54 68 69 constitutes.a.covered.work...Thi
35a0 73 20 4c 69 63 65 6e 73 65 20 61 63 6b 6e 6f 77 6c 65 64 67 65 73 20 79 6f 75 72 0a 72 69 67 68 s.License.acknowledges.your.righ
35c0 74 73 20 6f 66 20 66 61 69 72 20 75 73 65 20 6f 72 20 6f 74 68 65 72 20 65 71 75 69 76 61 6c 65 ts.of.fair.use.or.other.equivale
35e0 6e 74 2c 20 61 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 nt,.as.provided.by.copyright.law
3600 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 6d 61 6b 65 2c 20 72 75 6e 20 61 6e 64 20 70 72 6f 70 61 .....You.may.make,.run.and.propa
3620 67 61 74 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 68 61 74 20 79 6f 75 20 64 6f 20 6e gate.covered.works.that.you.do.n
3640 6f 74 0a 63 6f 6e 76 65 79 2c 20 77 69 74 68 6f 75 74 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 6f ot.convey,.without.conditions.so
3660 20 6c 6f 6e 67 20 61 73 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 6f 74 68 65 72 77 69 73 65 20 .long.as.your.license.otherwise.
3680 72 65 6d 61 69 6e 73 0a 69 6e 20 66 6f 72 63 65 2e 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 remains.in.force...You.may.conve
36a0 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 6f 20 6f 74 68 65 72 73 20 66 6f 72 20 74 68 y.covered.works.to.others.for.th
36c0 65 20 73 6f 6c 65 20 70 75 72 70 6f 73 65 0a 6f 66 20 68 61 76 69 6e 67 20 74 68 65 6d 20 6d 61 e.sole.purpose.of.having.them.ma
36e0 6b 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 65 78 63 6c 75 73 69 76 65 6c 79 20 66 6f 72 ke.modifications.exclusively.for
3700 20 79 6f 75 2c 20 6f 72 20 70 72 6f 76 69 64 65 20 79 6f 75 0a 77 69 74 68 20 66 61 63 69 6c 69 .you,.or.provide.you.with.facili
3720 74 69 65 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 6f 73 65 20 77 6f 72 6b 73 2c 20 70 72 ties.for.running.those.works,.pr
3740 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6d 70 6c 79 20 77 69 74 68 0a 74 68 65 20 ovided.that.you.comply.with.the.
3760 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 63 6f 6e 76 65 79 69 terms.of.this.License.in.conveyi
3780 6e 67 20 61 6c 6c 20 6d 61 74 65 72 69 61 6c 20 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 64 6f ng.all.material.for.which.you.do
37a0 0a 6e 6f 74 20 63 6f 6e 74 72 6f 6c 20 63 6f 70 79 72 69 67 68 74 2e 20 20 54 68 6f 73 65 20 74 .not.control.copyright...Those.t
37c0 68 75 73 20 6d 61 6b 69 6e 67 20 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 hus.making.or.running.the.covere
37e0 64 20 77 6f 72 6b 73 0a 66 6f 72 20 79 6f 75 20 6d 75 73 74 20 64 6f 20 73 6f 20 65 78 63 6c 75 d.works.for.you.must.do.so.exclu
3800 73 69 76 65 6c 79 20 6f 6e 20 79 6f 75 72 20 62 65 68 61 6c 66 2c 20 75 6e 64 65 72 20 79 6f 75 sively.on.your.behalf,.under.you
3820 72 20 64 69 72 65 63 74 69 6f 6e 0a 61 6e 64 20 63 6f 6e 74 72 6f 6c 2c 20 6f 6e 20 74 65 72 6d r.direction.and.control,.on.term
3840 73 20 74 68 61 74 20 70 72 6f 68 69 62 69 74 20 74 68 65 6d 20 66 72 6f 6d 20 6d 61 6b 69 6e 67 s.that.prohibit.them.from.making
3860 20 61 6e 79 20 63 6f 70 69 65 73 20 6f 66 0a 79 6f 75 72 20 63 6f 70 79 72 69 67 68 74 65 64 20 .any.copies.of.your.copyrighted.
3880 6d 61 74 65 72 69 61 6c 20 6f 75 74 73 69 64 65 20 74 68 65 69 72 20 72 65 6c 61 74 69 6f 6e 73 material.outside.their.relations
38a0 68 69 70 20 77 69 74 68 20 79 6f 75 2e 0a 0a 20 20 43 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 hip.with.you.....Conveying.under
38c0 20 61 6e 79 20 6f 74 68 65 72 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 20 69 73 20 70 65 72 6d .any.other.circumstances.is.perm
38e0 69 74 74 65 64 20 73 6f 6c 65 6c 79 20 75 6e 64 65 72 0a 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e itted.solely.under.the.condition
3900 73 20 73 74 61 74 65 64 20 62 65 6c 6f 77 2e 20 20 53 75 62 6c 69 63 65 6e 73 69 6e 67 20 69 73 s.stated.below...Sublicensing.is
3920 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 3b 20 73 65 63 74 69 6f 6e 20 31 30 0a 6d 61 6b 65 73 20 69 .not.allowed;.section.10.makes.i
3940 74 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 20 20 33 2e 20 50 72 6f 74 65 63 74 69 6e 67 20 t.unnecessary.....3..Protecting.
3960 55 73 65 72 73 27 20 4c 65 67 61 6c 20 52 69 67 68 74 73 20 46 72 6f 6d 20 41 6e 74 69 2d 43 69 Users'.Legal.Rights.From.Anti-Ci
3980 72 63 75 6d 76 65 6e 74 69 6f 6e 20 4c 61 77 2e 0a 0a 20 20 4e 6f 20 63 6f 76 65 72 65 64 20 77 rcumvention.Law.....No.covered.w
39a0 6f 72 6b 20 73 68 61 6c 6c 20 62 65 20 64 65 65 6d 65 64 20 70 61 72 74 20 6f 66 20 61 6e 20 65 ork.shall.be.deemed.part.of.an.e
39c0 66 66 65 63 74 69 76 65 20 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 0a 6d 65 61 73 75 72 65 20 75 ffective.technological.measure.u
39e0 6e 64 65 72 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 20 66 75 6c 66 69 6c 6c 69 nder.any.applicable.law.fulfilli
3a00 6e 67 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 61 72 74 69 63 6c 65 0a 31 31 20 ng.obligations.under.article.11.
3a20 6f 66 20 74 68 65 20 57 49 50 4f 20 63 6f 70 79 72 69 67 68 74 20 74 72 65 61 74 79 20 61 64 6f of.the.WIPO.copyright.treaty.ado
3a40 70 74 65 64 20 6f 6e 20 32 30 20 44 65 63 65 6d 62 65 72 20 31 39 39 36 2c 20 6f 72 0a 73 69 6d pted.on.20.December.1996,.or.sim
3a60 69 6c 61 72 20 6c 61 77 73 20 70 72 6f 68 69 62 69 74 69 6e 67 20 6f 72 20 72 65 73 74 72 69 63 ilar.laws.prohibiting.or.restric
3a80 74 69 6e 67 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 73 75 63 68 0a 6d 65 61 73 75 ting.circumvention.of.such.measu
3aa0 72 65 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 res.....When.you.convey.a.covere
3ac0 64 20 77 6f 72 6b 2c 20 79 6f 75 20 77 61 69 76 65 20 61 6e 79 20 6c 65 67 61 6c 20 70 6f 77 65 d.work,.you.waive.any.legal.powe
3ae0 72 20 74 6f 20 66 6f 72 62 69 64 0a 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 r.to.forbid.circumvention.of.tec
3b00 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73 20 74 6f 20 74 68 65 20 65 78 74 65 6e hnological.measures.to.the.exten
3b20 74 20 73 75 63 68 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 0a 69 73 20 65 66 66 65 63 74 65 64 t.such.circumvention.is.effected
3b40 20 62 79 20 65 78 65 72 63 69 73 69 6e 67 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 .by.exercising.rights.under.this
3b60 20 4c 69 63 65 6e 73 65 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 0a 74 68 65 20 63 6f 76 .License.with.respect.to.the.cov
3b80 65 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 79 6f 75 20 64 69 73 63 6c 61 69 6d 20 61 6e 79 20 ered.work,.and.you.disclaim.any.
3ba0 69 6e 74 65 6e 74 69 6f 6e 20 74 6f 20 6c 69 6d 69 74 20 6f 70 65 72 61 74 69 6f 6e 20 6f 72 0a intention.to.limit.operation.or.
3bc0 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 73 20 61 20 6d 65 modification.of.the.work.as.a.me
3be0 61 6e 73 20 6f 66 20 65 6e 66 6f 72 63 69 6e 67 2c 20 61 67 61 69 6e 73 74 20 74 68 65 20 77 6f ans.of.enforcing,.against.the.wo
3c00 72 6b 27 73 0a 75 73 65 72 73 2c 20 79 6f 75 72 20 6f 72 20 74 68 69 72 64 20 70 61 72 74 69 65 rk's.users,.your.or.third.partie
3c20 73 27 20 6c 65 67 61 6c 20 72 69 67 68 74 73 20 74 6f 20 66 6f 72 62 69 64 20 63 69 72 63 75 6d s'.legal.rights.to.forbid.circum
3c40 76 65 6e 74 69 6f 6e 20 6f 66 0a 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 vention.of.technological.measure
3c60 73 2e 0a 0a 20 20 34 2e 20 43 6f 6e 76 65 79 69 6e 67 20 56 65 72 62 61 74 69 6d 20 43 6f 70 69 s.....4..Conveying.Verbatim.Copi
3c80 65 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 76 65 72 62 61 74 69 6d 20 63 es.....You.may.convey.verbatim.c
3ca0 6f 70 69 65 73 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 27 73 20 73 6f 75 72 63 65 20 63 6f opies.of.the.Program's.source.co
3cc0 64 65 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 20 69 74 2c 20 69 6e 20 61 6e 79 20 6d 65 64 de.as.you.receive.it,.in.any.med
3ce0 69 75 6d 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 73 70 69 63 75 6f ium,.provided.that.you.conspicuo
3d00 75 73 6c 79 20 61 6e 64 0a 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 70 75 62 6c 69 73 68 20 6f usly.and.appropriately.publish.o
3d20 6e 20 65 61 63 68 20 63 6f 70 79 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 n.each.copy.an.appropriate.copyr
3d40 69 67 68 74 20 6e 6f 74 69 63 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 ight.notice;.keep.intact.all.not
3d60 69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 ices.stating.that.this.License.a
3d80 6e 64 20 61 6e 79 0a 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 74 65 72 6d 73 20 61 64 64 65 nd.any.non-permissive.terms.adde
3da0 64 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 73 65 63 74 69 6f 6e 20 37 20 61 70 70 6c 79 d.in.accord.with.section.7.apply
3dc0 20 74 6f 20 74 68 65 20 63 6f 64 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f .to.the.code;.keep.intact.all.no
3de0 74 69 63 65 73 20 6f 66 20 74 68 65 20 61 62 73 65 6e 63 65 20 6f 66 20 61 6e 79 20 77 61 72 72 tices.of.the.absence.of.any.warr
3e00 61 6e 74 79 3b 20 61 6e 64 20 67 69 76 65 20 61 6c 6c 0a 72 65 63 69 70 69 65 6e 74 73 20 61 20 anty;.and.give.all.recipients.a.
3e20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 copy.of.this.License.along.with.
3e40 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 68 61 72 67 65 20 61 the.Program.....You.may.charge.a
3e60 6e 79 20 70 72 69 63 65 20 6f 72 20 6e 6f 20 70 72 69 63 65 20 66 6f 72 20 65 61 63 68 20 63 6f ny.price.or.no.price.for.each.co
3e80 70 79 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 76 65 79 2c 0a 61 6e 64 20 79 6f 75 20 6d 61 79 20 py.that.you.convey,.and.you.may.
3ea0 6f 66 66 65 72 20 73 75 70 70 6f 72 74 20 6f 72 20 77 61 72 72 61 6e 74 79 20 70 72 6f 74 65 63 offer.support.or.warranty.protec
3ec0 74 69 6f 6e 20 66 6f 72 20 61 20 66 65 65 2e 0a 0a 20 20 35 2e 20 43 6f 6e 76 65 79 69 6e 67 20 tion.for.a.fee.....5..Conveying.
3ee0 4d 6f 64 69 66 69 65 64 20 53 6f 75 72 63 65 20 56 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 59 6f 75 Modified.Source.Versions.....You
3f00 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 77 6f 72 6b 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 .may.convey.a.work.based.on.the.
3f20 50 72 6f 67 72 61 6d 2c 20 6f 72 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f Program,.or.the.modifications.to
3f40 0a 70 72 6f 64 75 63 65 20 69 74 20 66 72 6f 6d 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 69 6e .produce.it.from.the.Program,.in
3f60 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 .the.form.of.source.code.under.t
3f80 68 65 0a 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 20 34 2c 20 70 72 6f 76 69 64 65 64 20 he.terms.of.section.4,.provided.
3fa0 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 6d 65 65 74 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 that.you.also.meet.all.of.these.
3fc0 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 20 20 20 20 61 29 20 54 68 65 20 77 6f 72 6b 20 6d 75 73 conditions:......a).The.work.mus
3fe0 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 69 63 65 73 20 73 74 61 74 69 6e t.carry.prominent.notices.statin
4000 67 20 74 68 61 74 20 79 6f 75 20 6d 6f 64 69 66 69 65 64 0a 20 20 20 20 69 74 2c 20 61 6e 64 20 g.that.you.modified.....it,.and.
4020 67 69 76 69 6e 67 20 61 20 72 65 6c 65 76 61 6e 74 20 64 61 74 65 2e 0a 0a 20 20 20 20 62 29 20 giving.a.relevant.date.......b).
4040 54 68 65 20 77 6f 72 6b 20 6d 75 73 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f The.work.must.carry.prominent.no
4060 74 69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 20 20 20 20 72 65 6c tices.stating.that.it.is.....rel
4080 65 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 eased.under.this.License.and.any
40a0 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 64 64 65 64 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 0a .conditions.added.under.section.
40c0 20 20 20 20 37 2e 20 20 54 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 6d 6f 64 69 66 69 65 ....7...This.requirement.modifie
40e0 73 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 73 65 63 74 69 6f 6e 20 34 20 74 s.the.requirement.in.section.4.t
4100 6f 0a 20 20 20 20 22 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 63 65 73 22 2e o....."keep.intact.all.notices".
4120 0a 0a 20 20 20 20 63 29 20 59 6f 75 20 6d 75 73 74 20 6c 69 63 65 6e 73 65 20 74 68 65 20 65 6e ......c).You.must.license.the.en
4140 74 69 72 65 20 77 6f 72 6b 2c 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 75 6e 64 65 72 20 74 68 69 tire.work,.as.a.whole,.under.thi
4160 73 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6d 65 s.....License.to.anyone.who.come
4180 73 20 69 6e 74 6f 20 70 6f 73 73 65 73 73 69 6f 6e 20 6f 66 20 61 20 63 6f 70 79 2e 20 20 54 68 s.into.possession.of.a.copy...Th
41a0 69 73 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 74 68 65 72 65 66 6f 72 65 20 61 70 is.....License.will.therefore.ap
41c0 70 6c 79 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 73 ply,.along.with.any.applicable.s
41e0 65 63 74 69 6f 6e 20 37 0a 20 20 20 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 74 ection.7.....additional.terms,.t
4200 6f 20 74 68 65 20 77 68 6f 6c 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 2c 20 61 6e 64 20 61 6c 6c o.the.whole.of.the.work,.and.all
4220 20 69 74 73 20 70 61 72 74 73 2c 0a 20 20 20 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f .its.parts,.....regardless.of.ho
4240 77 20 74 68 65 79 20 61 72 65 20 70 61 63 6b 61 67 65 64 2e 20 20 54 68 69 73 20 4c 69 63 65 6e w.they.are.packaged...This.Licen
4260 73 65 20 67 69 76 65 73 20 6e 6f 0a 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 6c 69 se.gives.no.....permission.to.li
4280 63 65 6e 73 65 20 74 68 65 20 77 6f 72 6b 20 69 6e 20 61 6e 79 20 6f 74 68 65 72 20 77 61 79 2c cense.the.work.in.any.other.way,
42a0 20 62 75 74 20 69 74 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 69 6e 76 61 6c 69 64 61 74 65 20 .but.it.does.not.....invalidate.
42c0 73 75 63 68 20 70 65 72 6d 69 73 73 69 6f 6e 20 69 66 20 79 6f 75 20 68 61 76 65 20 73 65 70 61 such.permission.if.you.have.sepa
42e0 72 61 74 65 6c 79 20 72 65 63 65 69 76 65 64 20 69 74 2e 0a 0a 20 20 20 20 64 29 20 49 66 20 74 rately.received.it.......d).If.t
4300 68 65 20 77 6f 72 6b 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 he.work.has.interactive.user.int
4320 65 72 66 61 63 65 73 2c 20 65 61 63 68 20 6d 75 73 74 20 64 69 73 70 6c 61 79 0a 20 20 20 20 41 erfaces,.each.must.display.....A
4340 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 3b 20 68 6f 77 65 76 65 ppropriate.Legal.Notices;.howeve
4360 72 2c 20 69 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 r,.if.the.Program.has.interactiv
4380 65 0a 20 20 20 20 69 6e 74 65 72 66 61 63 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 64 69 73 e.....interfaces.that.do.not.dis
43a0 70 6c 61 79 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 2c 20 play.Appropriate.Legal.Notices,.
43c0 79 6f 75 72 0a 20 20 20 20 77 6f 72 6b 20 6e 65 65 64 20 6e 6f 74 20 6d 61 6b 65 20 74 68 65 6d your.....work.need.not.make.them
43e0 20 64 6f 20 73 6f 2e 0a 0a 20 20 41 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f .do.so.....A.compilation.of.a.co
4400 76 65 72 65 64 20 77 6f 72 6b 20 77 69 74 68 20 6f 74 68 65 72 20 73 65 70 61 72 61 74 65 20 61 vered.work.with.other.separate.a
4420 6e 64 20 69 6e 64 65 70 65 6e 64 65 6e 74 0a 77 6f 72 6b 73 2c 20 77 68 69 63 68 20 61 72 65 20 nd.independent.works,.which.are.
4440 6e 6f 74 20 62 79 20 74 68 65 69 72 20 6e 61 74 75 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 6f not.by.their.nature.extensions.o
4460 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 0a 61 6e 64 20 77 68 69 63 68 20 61 72 f.the.covered.work,.and.which.ar
4480 65 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 69 74 20 73 75 63 68 20 61 73 20 74 e.not.combined.with.it.such.as.t
44a0 6f 20 66 6f 72 6d 20 61 20 6c 61 72 67 65 72 20 70 72 6f 67 72 61 6d 2c 0a 69 6e 20 6f 72 20 6f o.form.a.larger.program,.in.or.o
44c0 6e 20 61 20 76 6f 6c 75 6d 65 20 6f 66 20 61 20 73 74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 72 n.a.volume.of.a.storage.or.distr
44e0 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 2c 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 0a 22 61 67 ibution.medium,.is.called.an."ag
4500 67 72 65 67 61 74 65 22 20 69 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 61 6e 64 20 gregate".if.the.compilation.and.
4520 69 74 73 20 72 65 73 75 6c 74 69 6e 67 20 63 6f 70 79 72 69 67 68 74 20 61 72 65 20 6e 6f 74 0a its.resulting.copyright.are.not.
4540 75 73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 61 63 63 65 73 73 20 6f 72 20 6c 65 67 61 used.to.limit.the.access.or.lega
4560 6c 20 72 69 67 68 74 73 20 6f 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 27 73 20 75 73 l.rights.of.the.compilation's.us
4580 65 72 73 0a 62 65 79 6f 6e 64 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 77 ers.beyond.what.the.individual.w
45a0 6f 72 6b 73 20 70 65 72 6d 69 74 2e 20 20 49 6e 63 6c 75 73 69 6f 6e 20 6f 66 20 61 20 63 6f 76 orks.permit...Inclusion.of.a.cov
45c0 65 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 6e 20 61 67 67 72 65 67 61 74 65 20 64 6f 65 73 20 6e ered.work.in.an.aggregate.does.n
45e0 6f 74 20 63 61 75 73 65 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 70 70 6c 79 20 74 ot.cause.this.License.to.apply.t
4600 6f 20 74 68 65 20 6f 74 68 65 72 0a 70 61 72 74 73 20 6f 66 20 74 68 65 20 61 67 67 72 65 67 61 o.the.other.parts.of.the.aggrega
4620 74 65 2e 0a 0a 20 20 36 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4e 6f 6e 2d 53 6f 75 72 63 65 20 46 te.....6..Conveying.Non-Source.F
4640 6f 72 6d 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 orms.....You.may.convey.a.covere
4660 64 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 75 6e 64 65 72 d.work.in.object.code.form.under
4680 20 74 68 65 20 74 65 72 6d 73 0a 6f 66 20 73 65 63 74 69 6f 6e 73 20 34 20 61 6e 64 20 35 2c 20 .the.terms.of.sections.4.and.5,.
46a0 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 63 6f 6e 76 65 79 20 74 68 provided.that.you.also.convey.th
46c0 65 0a 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 e.machine-readable.Corresponding
46e0 20 53 6f 75 72 63 65 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 .Source.under.the.terms.of.this.
4700 4c 69 63 65 6e 73 65 2c 0a 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 77 61 79 73 3a 0a 0a License,.in.one.of.these.ways:..
4720 20 20 20 20 61 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e ....a).Convey.the.object.code.in
4740 2c 20 6f 72 20 65 6d 62 6f 64 69 65 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f ,.or.embodied.in,.a.physical.pro
4760 64 75 63 74 0a 20 20 20 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 duct.....(including.a.physical.d
4780 69 73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 istribution.medium),.accompanied
47a0 20 62 79 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 .by.the.....Corresponding.Source
47c0 20 66 69 78 65 64 20 6f 6e 20 61 20 64 75 72 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 6d 65 64 .fixed.on.a.durable.physical.med
47e0 69 75 6d 0a 20 20 20 20 63 75 73 74 6f 6d 61 72 69 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 ium.....customarily.used.for.sof
4800 74 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 2e 0a 0a 20 20 20 20 62 29 20 43 6f 6e 76 65 tware.interchange.......b).Conve
4820 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 y.the.object.code.in,.or.embodie
4840 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 75 63 74 0a 20 20 20 20 28 69 6e d.in,.a.physical.product.....(in
4860 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 cluding.a.physical.distribution.
4880 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 61 0a 20 20 20 20 77 72 medium),.accompanied.by.a.....wr
48a0 69 74 74 65 6e 20 6f 66 66 65 72 2c 20 76 61 6c 69 64 20 66 6f 72 20 61 74 20 6c 65 61 73 74 20 itten.offer,.valid.for.at.least.
48c0 74 68 72 65 65 20 79 65 61 72 73 20 61 6e 64 20 76 61 6c 69 64 20 66 6f 72 20 61 73 0a 20 20 20 three.years.and.valid.for.as....
48e0 20 6c 6f 6e 67 20 61 73 20 79 6f 75 20 6f 66 66 65 72 20 73 70 61 72 65 20 70 61 72 74 73 20 6f .long.as.you.offer.spare.parts.o
4900 72 20 63 75 73 74 6f 6d 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 61 74 20 70 72 6f 64 r.customer.support.for.that.prod
4920 75 63 74 0a 20 20 20 20 6d 6f 64 65 6c 2c 20 74 6f 20 67 69 76 65 20 61 6e 79 6f 6e 65 20 77 68 uct.....model,.to.give.anyone.wh
4940 6f 20 70 6f 73 73 65 73 73 65 73 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 65 69 74 68 o.possesses.the.object.code.eith
4960 65 72 20 28 31 29 20 61 0a 20 20 20 20 63 6f 70 79 20 6f 66 20 74 68 65 20 43 6f 72 72 65 73 70 er.(1).a.....copy.of.the.Corresp
4980 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 6c 6c 20 74 68 65 20 73 6f 66 74 77 61 onding.Source.for.all.the.softwa
49a0 72 65 20 69 6e 20 74 68 65 0a 20 20 20 20 70 72 6f 64 75 63 74 20 74 68 61 74 20 69 73 20 63 6f re.in.the.....product.that.is.co
49c0 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 6f 6e 20 61 20 64 75 72 61 vered.by.this.License,.on.a.dura
49e0 62 6c 65 20 70 68 79 73 69 63 61 6c 0a 20 20 20 20 6d 65 64 69 75 6d 20 63 75 73 74 6f 6d 61 72 ble.physical.....medium.customar
4a00 69 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 ily.used.for.software.interchang
4a20 65 2c 20 66 6f 72 20 61 20 70 72 69 63 65 20 6e 6f 0a 20 20 20 20 6d 6f 72 65 20 74 68 61 6e 20 e,.for.a.price.no.....more.than.
4a40 79 6f 75 72 20 72 65 61 73 6f 6e 61 62 6c 65 20 63 6f 73 74 20 6f 66 20 70 68 79 73 69 63 61 6c your.reasonable.cost.of.physical
4a60 6c 79 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 69 73 0a 20 20 20 20 63 6f 6e 76 65 79 69 6e 67 ly.performing.this.....conveying
4a80 20 6f 66 20 73 6f 75 72 63 65 2c 20 6f 72 20 28 32 29 20 61 63 63 65 73 73 20 74 6f 20 63 6f 70 .of.source,.or.(2).access.to.cop
4aa0 79 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 y.the.....Corresponding.Source.f
4ac0 72 6f 6d 20 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 20 61 74 20 6e 6f 20 63 68 61 72 67 rom.a.network.server.at.no.charg
4ae0 65 2e 0a 0a 20 20 20 20 63 29 20 43 6f 6e 76 65 79 20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 70 e.......c).Convey.individual.cop
4b00 69 65 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 61 20 63 6f ies.of.the.object.code.with.a.co
4b20 70 79 20 6f 66 20 74 68 65 0a 20 20 20 20 77 72 69 74 74 65 6e 20 6f 66 66 65 72 20 74 6f 20 70 py.of.the.....written.offer.to.p
4b40 72 6f 76 69 64 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e rovide.the.Corresponding.Source.
4b60 20 20 54 68 69 73 0a 20 20 20 20 61 6c 74 65 72 6e 61 74 69 76 65 20 69 73 20 61 6c 6c 6f 77 65 ..This.....alternative.is.allowe
4b80 64 20 6f 6e 6c 79 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 61 6e 64 20 6e 6f 6e 63 6f 6d 6d 65 d.only.occasionally.and.noncomme
4ba0 72 63 69 61 6c 6c 79 2c 20 61 6e 64 0a 20 20 20 20 6f 6e 6c 79 20 69 66 20 79 6f 75 20 72 65 63 rcially,.and.....only.if.you.rec
4bc0 65 69 76 65 64 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 73 75 63 68 20 eived.the.object.code.with.such.
4be0 61 6e 20 6f 66 66 65 72 2c 20 69 6e 20 61 63 63 6f 72 64 0a 20 20 20 20 77 69 74 68 20 73 75 62 an.offer,.in.accord.....with.sub
4c00 73 65 63 74 69 6f 6e 20 36 62 2e 0a 0a 20 20 20 20 64 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f section.6b.......d).Convey.the.o
4c20 62 6a 65 63 74 20 63 6f 64 65 20 62 79 20 6f 66 66 65 72 69 6e 67 20 61 63 63 65 73 73 20 66 72 bject.code.by.offering.access.fr
4c40 6f 6d 20 61 20 64 65 73 69 67 6e 61 74 65 64 0a 20 20 20 20 70 6c 61 63 65 20 28 67 72 61 74 69 om.a.designated.....place.(grati
4c60 73 20 6f 72 20 66 6f 72 20 61 20 63 68 61 72 67 65 29 2c 20 61 6e 64 20 6f 66 66 65 72 20 65 71 s.or.for.a.charge),.and.offer.eq
4c80 75 69 76 61 6c 65 6e 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 uivalent.access.to.the.....Corre
4ca0 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 sponding.Source.in.the.same.way.
4cc0 74 68 72 6f 75 67 68 20 74 68 65 20 73 61 6d 65 20 70 6c 61 63 65 20 61 74 20 6e 6f 0a 20 20 20 through.the.same.place.at.no....
4ce0 20 66 75 72 74 68 65 72 20 63 68 61 72 67 65 2e 20 20 59 6f 75 20 6e 65 65 64 20 6e 6f 74 20 72 .further.charge...You.need.not.r
4d00 65 71 75 69 72 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 6f 20 63 6f 70 79 20 74 68 65 0a 20 20 equire.recipients.to.copy.the...
4d20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 6c 6f 6e 67 20 77 69 74 ..Corresponding.Source.along.wit
4d40 68 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2e 20 20 49 66 20 74 68 65 20 70 6c 61 63 65 h.the.object.code...If.the.place
4d60 20 74 6f 0a 20 20 20 20 63 6f 70 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 .to.....copy.the.object.code.is.
4d80 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 2c 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 a.network.server,.the.Correspond
4da0 69 6e 67 20 53 6f 75 72 63 65 0a 20 20 20 20 6d 61 79 20 62 65 20 6f 6e 20 61 20 64 69 66 66 65 ing.Source.....may.be.on.a.diffe
4dc0 72 65 6e 74 20 73 65 72 76 65 72 20 28 6f 70 65 72 61 74 65 64 20 62 79 20 79 6f 75 20 6f 72 20 rent.server.(operated.by.you.or.
4de0 61 20 74 68 69 72 64 20 70 61 72 74 79 29 0a 20 20 20 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 a.third.party).....that.supports
4e00 20 65 71 75 69 76 61 6c 65 6e 74 20 63 6f 70 79 69 6e 67 20 66 61 63 69 6c 69 74 69 65 73 2c 20 .equivalent.copying.facilities,.
4e20 70 72 6f 76 69 64 65 64 20 79 6f 75 20 6d 61 69 6e 74 61 69 6e 0a 20 20 20 20 63 6c 65 61 72 20 provided.you.maintain.....clear.
4e40 64 69 72 65 63 74 69 6f 6e 73 20 6e 65 78 74 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f directions.next.to.the.object.co
4e60 64 65 20 73 61 79 69 6e 67 20 77 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68 65 0a 20 20 20 20 de.saying.where.to.find.the.....
4e80 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 52 65 67 61 72 64 6c 65 73 Corresponding.Source...Regardles
4ea0 73 20 6f 66 20 77 68 61 74 20 73 65 72 76 65 72 20 68 6f 73 74 73 20 74 68 65 0a 20 20 20 20 43 s.of.what.server.hosts.the.....C
4ec0 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2c 20 79 6f 75 20 72 65 6d 61 69 6e 20 orresponding.Source,.you.remain.
4ee0 6f 62 6c 69 67 61 74 65 64 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 69 74 20 69 73 0a 20 obligated.to.ensure.that.it.is..
4f00 20 20 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 73 20 6c 6f 6e 67 20 61 73 20 6e 65 65 64 ...available.for.as.long.as.need
4f20 65 64 20 74 6f 20 73 61 74 69 73 66 79 20 74 68 65 73 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 ed.to.satisfy.these.requirements
4f40 2e 0a 0a 20 20 20 20 65 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 .......e).Convey.the.object.code
4f60 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e .using.peer-to-peer.transmission
4f80 2c 20 70 72 6f 76 69 64 65 64 0a 20 20 20 20 79 6f 75 20 69 6e 66 6f 72 6d 20 6f 74 68 65 72 20 ,.provided.....you.inform.other.
4fa0 70 65 65 72 73 20 77 68 65 72 65 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 peers.where.the.object.code.and.
4fc0 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 20 20 20 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 Corresponding.....Source.of.the.
4fe0 77 6f 72 6b 20 61 72 65 20 62 65 69 6e 67 20 6f 66 66 65 72 65 64 20 74 6f 20 74 68 65 20 67 65 work.are.being.offered.to.the.ge
5000 6e 65 72 61 6c 20 70 75 62 6c 69 63 20 61 74 20 6e 6f 0a 20 20 20 20 63 68 61 72 67 65 20 75 6e neral.public.at.no.....charge.un
5020 64 65 72 20 73 75 62 73 65 63 74 69 6f 6e 20 36 64 2e 0a 0a 20 20 41 20 73 65 70 61 72 61 62 6c der.subsection.6d.....A.separabl
5040 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2c 20 77 68 e.portion.of.the.object.code,.wh
5060 6f 73 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 65 78 63 6c 75 64 65 64 0a 66 72 6f 6d ose.source.code.is.excluded.from
5080 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 73 20 61 20 53 .the.Corresponding.Source.as.a.S
50a0 79 73 74 65 6d 20 4c 69 62 72 61 72 79 2c 20 6e 65 65 64 20 6e 6f 74 20 62 65 0a 69 6e 63 6c 75 ystem.Library,.need.not.be.inclu
50c0 64 65 64 20 69 6e 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 ded.in.conveying.the.object.code
50e0 20 77 6f 72 6b 2e 0a 0a 20 20 41 20 22 55 73 65 72 20 50 72 6f 64 75 63 74 22 20 69 73 20 65 69 .work.....A."User.Product".is.ei
5100 74 68 65 72 20 28 31 29 20 61 20 22 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 22 2c 20 77 ther.(1).a."consumer.product",.w
5120 68 69 63 68 20 6d 65 61 6e 73 20 61 6e 79 0a 74 61 6e 67 69 62 6c 65 20 70 65 72 73 6f 6e 61 6c hich.means.any.tangible.personal
5140 20 70 72 6f 70 65 72 74 79 20 77 68 69 63 68 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 64 .property.which.is.normally.used
5160 20 66 6f 72 20 70 65 72 73 6f 6e 61 6c 2c 20 66 61 6d 69 6c 79 2c 0a 6f 72 20 68 6f 75 73 65 68 .for.personal,.family,.or.househ
5180 6f 6c 64 20 70 75 72 70 6f 73 65 73 2c 20 6f 72 20 28 32 29 20 61 6e 79 74 68 69 6e 67 20 64 65 old.purposes,.or.(2).anything.de
51a0 73 69 67 6e 65 64 20 6f 72 20 73 6f 6c 64 20 66 6f 72 20 69 6e 63 6f 72 70 6f 72 61 74 69 6f 6e signed.or.sold.for.incorporation
51c0 0a 69 6e 74 6f 20 61 20 64 77 65 6c 6c 69 6e 67 2e 20 20 49 6e 20 64 65 74 65 72 6d 69 6e 69 6e .into.a.dwelling...In.determinin
51e0 67 20 77 68 65 74 68 65 72 20 61 20 70 72 6f 64 75 63 74 20 69 73 20 61 20 63 6f 6e 73 75 6d 65 g.whether.a.product.is.a.consume
5200 72 20 70 72 6f 64 75 63 74 2c 0a 64 6f 75 62 74 66 75 6c 20 63 61 73 65 73 20 73 68 61 6c 6c 20 r.product,.doubtful.cases.shall.
5220 62 65 20 72 65 73 6f 6c 76 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 20 63 6f 76 65 72 61 67 65 be.resolved.in.favor.of.coverage
5240 2e 20 20 46 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 0a 70 72 6f 64 75 63 74 20 72 65 63 65 ...For.a.particular.product.rece
5260 69 76 65 64 20 62 79 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 2c 20 22 6e 6f 72 6d ived.by.a.particular.user,."norm
5280 61 6c 6c 79 20 75 73 65 64 22 20 72 65 66 65 72 73 20 74 6f 20 61 0a 74 79 70 69 63 61 6c 20 6f ally.used".refers.to.a.typical.o
52a0 72 20 63 6f 6d 6d 6f 6e 20 75 73 65 20 6f 66 20 74 68 61 74 20 63 6c 61 73 73 20 6f 66 20 70 72 r.common.use.of.that.class.of.pr
52c0 6f 64 75 63 74 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 73 74 61 74 75 73 0a oduct,.regardless.of.the.status.
52e0 6f 66 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 20 6f 72 20 6f 66 20 74 68 65 of.the.particular.user.or.of.the
5300 20 77 61 79 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 .way.in.which.the.particular.use
5320 72 0a 61 63 74 75 61 6c 6c 79 20 75 73 65 73 2c 20 6f 72 20 65 78 70 65 63 74 73 20 6f 72 20 69 r.actually.uses,.or.expects.or.i
5340 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 75 73 65 2c 20 74 68 65 20 70 72 6f 64 75 63 74 2e 20 s.expected.to.use,.the.product..
5360 20 41 20 70 72 6f 64 75 63 74 0a 69 73 20 61 20 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 .A.product.is.a.consumer.product
5380 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 65 20 70 72 6f 64 75 .regardless.of.whether.the.produ
53a0 63 74 20 68 61 73 20 73 75 62 73 74 61 6e 74 69 61 6c 0a 63 6f 6d 6d 65 72 63 69 61 6c 2c 20 69 ct.has.substantial.commercial,.i
53c0 6e 64 75 73 74 72 69 61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6e 73 75 6d 65 72 20 75 73 65 73 2c 20 ndustrial.or.non-consumer.uses,.
53e0 75 6e 6c 65 73 73 20 73 75 63 68 20 75 73 65 73 20 72 65 70 72 65 73 65 6e 74 0a 74 68 65 20 6f unless.such.uses.represent.the.o
5400 6e 6c 79 20 73 69 67 6e 69 66 69 63 61 6e 74 20 6d 6f 64 65 20 6f 66 20 75 73 65 20 6f 66 20 74 nly.significant.mode.of.use.of.t
5420 68 65 20 70 72 6f 64 75 63 74 2e 0a 0a 20 20 22 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 he.product....."Installation.Inf
5440 6f 72 6d 61 74 69 6f 6e 22 20 66 6f 72 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 6d 65 61 ormation".for.a.User.Product.mea
5460 6e 73 20 61 6e 79 20 6d 65 74 68 6f 64 73 2c 0a 70 72 6f 63 65 64 75 72 65 73 2c 20 61 75 74 68 ns.any.methods,.procedures,.auth
5480 6f 72 69 7a 61 74 69 6f 6e 20 6b 65 79 73 2c 20 6f 72 20 6f 74 68 65 72 20 69 6e 66 6f 72 6d 61 orization.keys,.or.other.informa
54a0 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 61 6e 64 20 65 78 65 tion.required.to.install.and.exe
54c0 63 75 74 65 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 61 20 63 6f 76 65 cute.modified.versions.of.a.cove
54e0 72 65 64 20 77 6f 72 6b 20 69 6e 20 74 68 61 74 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 66 72 red.work.in.that.User.Product.fr
5500 6f 6d 0a 61 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 73 20 43 6f 72 om.a.modified.version.of.its.Cor
5520 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 54 68 65 20 69 6e 66 6f 72 6d 61 74 responding.Source...The.informat
5540 69 6f 6e 20 6d 75 73 74 0a 73 75 66 66 69 63 65 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 ion.must.suffice.to.ensure.that.
5560 74 68 65 20 63 6f 6e 74 69 6e 75 65 64 20 66 75 6e 63 74 69 6f 6e 69 6e 67 20 6f 66 20 74 68 65 the.continued.functioning.of.the
5580 20 6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 0a 63 6f 64 65 20 69 73 20 69 6e 20 6e 6f 20 63 .modified.object.code.is.in.no.c
55a0 61 73 65 20 70 72 65 76 65 6e 74 65 64 20 6f 72 20 69 6e 74 65 72 66 65 72 65 64 20 77 69 74 68 ase.prevented.or.interfered.with
55c0 20 73 6f 6c 65 6c 79 20 62 65 63 61 75 73 65 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 68 61 73 .solely.because.modification.has
55e0 20 62 65 65 6e 20 6d 61 64 65 2e 0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 6e 20 .been.made.....If.you.convey.an.
5600 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 object.code.work.under.this.sect
5620 69 6f 6e 20 69 6e 2c 20 6f 72 20 77 69 74 68 2c 20 6f 72 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 ion.in,.or.with,.or.specifically
5640 20 66 6f 72 20 75 73 65 20 69 6e 2c 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 2c 20 61 6e 64 .for.use.in,.a.User.Product,.and
5660 20 74 68 65 20 63 6f 6e 76 65 79 69 6e 67 20 6f 63 63 75 72 73 20 61 73 0a 70 61 72 74 20 6f 66 .the.conveying.occurs.as.part.of
5680 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 72 69 67 68 .a.transaction.in.which.the.righ
56a0 74 20 6f 66 20 70 6f 73 73 65 73 73 69 6f 6e 20 61 6e 64 20 75 73 65 20 6f 66 20 74 68 65 0a 55 t.of.possession.and.use.of.the.U
56c0 73 65 72 20 50 72 6f 64 75 63 74 20 69 73 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 ser.Product.is.transferred.to.th
56e0 65 20 72 65 63 69 70 69 65 6e 74 20 69 6e 20 70 65 72 70 65 74 75 69 74 79 20 6f 72 20 66 6f 72 e.recipient.in.perpetuity.or.for
5700 20 61 0a 66 69 78 65 64 20 74 65 72 6d 20 28 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 .a.fixed.term.(regardless.of.how
5720 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 63 68 61 72 61 63 74 65 72 69 7a 65 .the.transaction.is.characterize
5740 64 29 2c 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 63 6f 6e d),.the.Corresponding.Source.con
5760 76 65 79 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 veyed.under.this.section.must.be
5780 20 61 63 63 6f 6d 70 61 6e 69 65 64 0a 62 79 20 74 68 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e .accompanied.by.the.Installation
57a0 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 42 75 74 20 74 68 69 73 20 72 65 71 75 69 72 65 6d .Information...But.this.requirem
57c0 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c 79 0a 69 66 20 6e 65 69 74 68 65 72 20 79 6f ent.does.not.apply.if.neither.yo
57e0 75 20 6e 6f 72 20 61 6e 79 20 74 68 69 72 64 20 70 61 72 74 79 20 72 65 74 61 69 6e 73 20 74 68 u.nor.any.third.party.retains.th
5800 65 20 61 62 69 6c 69 74 79 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 6d 6f 64 69 66 69 65 64 20 6f 62 e.ability.to.install.modified.ob
5820 6a 65 63 74 20 63 6f 64 65 20 6f 6e 20 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 28 66 ject.code.on.the.User.Product.(f
5840 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 77 6f 72 6b 20 68 61 73 0a 62 65 65 6e 20 69 6e or.example,.the.work.has.been.in
5860 73 74 61 6c 6c 65 64 20 69 6e 20 52 4f 4d 29 2e 0a 0a 20 20 54 68 65 20 72 65 71 75 69 72 65 6d stalled.in.ROM).....The.requirem
5880 65 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f ent.to.provide.Installation.Info
58a0 72 6d 61 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 0a 72 65 71 75 69 rmation.does.not.include.a.requi
58c0 72 65 6d 65 6e 74 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 70 72 6f 76 69 64 65 20 73 75 rement.to.continue.to.provide.su
58e0 70 70 6f 72 74 20 73 65 72 76 69 63 65 2c 20 77 61 72 72 61 6e 74 79 2c 20 6f 72 20 75 70 64 61 pport.service,.warranty,.or.upda
5900 74 65 73 0a 66 6f 72 20 61 20 77 6f 72 6b 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 tes.for.a.work.that.has.been.mod
5920 69 66 69 65 64 20 6f 72 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 74 68 65 20 72 65 63 69 70 69 ified.or.installed.by.the.recipi
5940 65 6e 74 2c 20 6f 72 20 66 6f 72 0a 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 69 6e 20 ent,.or.for.the.User.Product.in.
5960 77 68 69 63 68 20 69 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6f 72 20 69 6e which.it.has.been.modified.or.in
5980 73 74 61 6c 6c 65 64 2e 20 20 41 63 63 65 73 73 20 74 6f 20 61 0a 6e 65 74 77 6f 72 6b 20 6d 61 stalled...Access.to.a.network.ma
59a0 79 20 62 65 20 64 65 6e 69 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f y.be.denied.when.the.modificatio
59c0 6e 20 69 74 73 65 6c 66 20 6d 61 74 65 72 69 61 6c 6c 79 20 61 6e 64 0a 61 64 76 65 72 73 65 6c n.itself.materially.and.adversel
59e0 79 20 61 66 66 65 63 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e y.affects.the.operation.of.the.n
5a00 65 74 77 6f 72 6b 20 6f 72 20 76 69 6f 6c 61 74 65 73 20 74 68 65 20 72 75 6c 65 73 20 61 6e 64 etwork.or.violates.the.rules.and
5a20 0a 70 72 6f 74 6f 63 6f 6c 73 20 66 6f 72 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 61 63 72 .protocols.for.communication.acr
5a40 6f 73 73 20 74 68 65 20 6e 65 74 77 6f 72 6b 2e 0a 0a 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e oss.the.network.....Correspondin
5a60 67 20 53 6f 75 72 63 65 20 63 6f 6e 76 65 79 65 64 2c 20 61 6e 64 20 49 6e 73 74 61 6c 6c 61 74 g.Source.conveyed,.and.Installat
5a80 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 2c 0a 69 6e 20 61 63 63 ion.Information.provided,.in.acc
5aa0 6f 72 64 20 77 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 69 6e ord.with.this.section.must.be.in
5ac0 20 61 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73 20 70 75 62 6c 69 63 6c 79 0a 64 6f 63 75 6d .a.format.that.is.publicly.docum
5ae0 65 6e 74 65 64 20 28 61 6e 64 20 77 69 74 68 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f ented.(and.with.an.implementatio
5b00 6e 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 69 6e 0a 73 6f 75 n.available.to.the.public.in.sou
5b20 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 29 2c 20 61 6e 64 20 6d 75 73 74 20 72 65 71 75 69 72 65 rce.code.form),.and.must.require
5b40 20 6e 6f 20 73 70 65 63 69 61 6c 20 70 61 73 73 77 6f 72 64 20 6f 72 20 6b 65 79 20 66 6f 72 0a .no.special.password.or.key.for.
5b60 75 6e 70 61 63 6b 69 6e 67 2c 20 72 65 61 64 69 6e 67 20 6f 72 20 63 6f 70 79 69 6e 67 2e 0a 0a unpacking,.reading.or.copying...
5b80 20 20 37 2e 20 41 64 64 69 74 69 6f 6e 61 6c 20 54 65 72 6d 73 2e 0a 0a 20 20 22 41 64 64 69 74 ..7..Additional.Terms....."Addit
5ba0 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 22 20 61 72 65 20 74 65 72 6d 73 20 74 68 61 ional.permissions".are.terms.tha
5bc0 74 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 0a 4c t.supplement.the.terms.of.this.L
5be0 69 63 65 6e 73 65 20 62 79 20 6d 61 6b 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 73 20 66 72 6f 6d icense.by.making.exceptions.from
5c00 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 69 74 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 0a .one.or.more.of.its.conditions..
5c20 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 Additional.permissions.that.are.
5c40 61 70 70 6c 69 63 61 62 6c 65 20 74 6f 20 74 68 65 20 65 6e 74 69 72 65 20 50 72 6f 67 72 61 6d applicable.to.the.entire.Program
5c60 20 73 68 61 6c 6c 0a 62 65 20 74 72 65 61 74 65 64 20 61 73 20 74 68 6f 75 67 68 20 74 68 65 79 .shall.be.treated.as.though.they
5c80 20 77 65 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 .were.included.in.this.License,.
5ca0 74 6f 20 74 68 65 20 65 78 74 65 6e 74 0a 74 68 61 74 20 74 68 65 79 20 61 72 65 20 76 61 6c 69 to.the.extent.that.they.are.vali
5cc0 64 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 2e 20 20 49 66 20 61 64 64 69 d.under.applicable.law...If.addi
5ce0 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 0a 61 70 70 6c 79 20 6f 6e 6c 79 20 74 6f tional.permissions.apply.only.to
5d00 20 70 61 72 74 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 74 68 61 74 20 70 61 72 74 20 .part.of.the.Program,.that.part.
5d20 6d 61 79 20 62 65 20 75 73 65 64 20 73 65 70 61 72 61 74 65 6c 79 0a 75 6e 64 65 72 20 74 68 6f may.be.used.separately.under.tho
5d40 73 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 2c 20 62 75 74 20 74 68 65 20 65 6e 74 69 72 65 20 50 se.permissions,.but.the.entire.P
5d60 72 6f 67 72 61 6d 20 72 65 6d 61 69 6e 73 20 67 6f 76 65 72 6e 65 64 20 62 79 0a 74 68 69 73 20 rogram.remains.governed.by.this.
5d80 4c 69 63 65 6e 73 65 20 77 69 74 68 6f 75 74 20 72 65 67 61 72 64 20 74 6f 20 74 68 65 20 61 64 License.without.regard.to.the.ad
5da0 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f ditional.permissions.....When.yo
5dc0 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 70 79 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 u.convey.a.copy.of.a.covered.wor
5de0 6b 2c 20 79 6f 75 20 6d 61 79 20 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 0a 72 65 6d 6f 76 65 k,.you.may.at.your.option.remove
5e00 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 66 72 6f 6d .any.additional.permissions.from
5e20 20 74 68 61 74 20 63 6f 70 79 2c 20 6f 72 20 66 72 6f 6d 20 61 6e 79 20 70 61 72 74 20 6f 66 0a .that.copy,.or.from.any.part.of.
5e40 69 74 2e 20 20 28 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6d 61 79 it...(Additional.permissions.may
5e60 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 72 65 71 75 69 72 65 20 74 68 65 69 72 20 6f 77 6e .be.written.to.require.their.own
5e80 0a 72 65 6d 6f 76 61 6c 20 69 6e 20 63 65 72 74 61 69 6e 20 63 61 73 65 73 20 77 68 65 6e 20 79 .removal.in.certain.cases.when.y
5ea0 6f 75 20 6d 6f 64 69 66 79 20 74 68 65 20 77 6f 72 6b 2e 29 20 20 59 6f 75 20 6d 61 79 20 70 6c ou.modify.the.work.)..You.may.pl
5ec0 61 63 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6f 6e 20 6d 61 ace.additional.permissions.on.ma
5ee0 74 65 72 69 61 6c 2c 20 61 64 64 65 64 20 62 79 20 79 6f 75 20 74 6f 20 61 20 63 6f 76 65 72 65 terial,.added.by.you.to.a.covere
5f00 64 20 77 6f 72 6b 2c 0a 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 68 61 76 65 20 6f 72 20 63 61 d.work,.for.which.you.have.or.ca
5f20 6e 20 67 69 76 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 70 65 72 n.give.appropriate.copyright.per
5f40 6d 69 73 73 69 6f 6e 2e 0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e 64 69 6e 67 20 61 6e 79 20 mission.....Notwithstanding.any.
5f60 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c other.provision.of.this.License,
5f80 20 66 6f 72 20 6d 61 74 65 72 69 61 6c 20 79 6f 75 0a 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 .for.material.you.add.to.a.cover
5fa0 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20 28 69 66 20 61 75 74 68 6f 72 69 7a 65 64 20 ed.work,.you.may.(if.authorized.
5fc0 62 79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 73 20 6f 66 0a 74 68 61 74 by.the.copyright.holders.of.that
5fe0 20 6d 61 74 65 72 69 61 6c 29 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 .material).supplement.the.terms.
6000 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 69 74 68 20 74 65 72 6d 73 3a 0a 0a 20 20 20 of.this.License.with.terms:.....
6020 20 61 29 20 44 69 73 63 6c 61 69 6d 69 6e 67 20 77 61 72 72 61 6e 74 79 20 6f 72 20 6c 69 6d 69 .a).Disclaiming.warranty.or.limi
6040 74 69 6e 67 20 6c 69 61 62 69 6c 69 74 79 20 64 69 66 66 65 72 65 6e 74 6c 79 20 66 72 6f 6d 20 ting.liability.differently.from.
6060 74 68 65 0a 20 20 20 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 73 20 31 35 20 61 6e 64 the.....terms.of.sections.15.and
6080 20 31 36 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 3b 20 6f 72 0a 0a 20 20 20 20 62 29 20 .16.of.this.License;.or......b).
60a0 52 65 71 75 69 72 69 6e 67 20 70 72 65 73 65 72 76 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 66 Requiring.preservation.of.specif
60c0 69 65 64 20 72 65 61 73 6f 6e 61 62 6c 65 20 6c 65 67 61 6c 20 6e 6f 74 69 63 65 73 20 6f 72 0a ied.reasonable.legal.notices.or.
60e0 20 20 20 20 61 75 74 68 6f 72 20 61 74 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 74 68 61 74 20 ....author.attributions.in.that.
6100 6d 61 74 65 72 69 61 6c 20 6f 72 20 69 6e 20 74 68 65 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c material.or.in.the.Appropriate.L
6120 65 67 61 6c 0a 20 20 20 20 4e 6f 74 69 63 65 73 20 64 69 73 70 6c 61 79 65 64 20 62 79 20 77 6f egal.....Notices.displayed.by.wo
6140 72 6b 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 74 3b 20 6f 72 0a 0a 20 20 20 20 63 29 20 50 72 rks.containing.it;.or......c).Pr
6160 6f 68 69 62 69 74 69 6e 67 20 6d 69 73 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 ohibiting.misrepresentation.of.t
6180 68 65 20 6f 72 69 67 69 6e 20 6f 66 20 74 68 61 74 20 6d 61 74 65 72 69 61 6c 2c 20 6f 72 0a 20 he.origin.of.that.material,.or..
61a0 20 20 20 72 65 71 75 69 72 69 6e 67 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 ...requiring.that.modified.versi
61c0 6f 6e 73 20 6f 66 20 73 75 63 68 20 6d 61 74 65 72 69 61 6c 20 62 65 20 6d 61 72 6b 65 64 20 69 ons.of.such.material.be.marked.i
61e0 6e 0a 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 65 20 77 61 79 73 20 61 73 20 64 69 66 66 65 72 65 n.....reasonable.ways.as.differe
6200 6e 74 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 3b 20 6f 72 nt.from.the.original.version;.or
6220 0a 0a 20 20 20 20 64 29 20 4c 69 6d 69 74 69 6e 67 20 74 68 65 20 75 73 65 20 66 6f 72 20 70 75 ......d).Limiting.the.use.for.pu
6240 62 6c 69 63 69 74 79 20 70 75 72 70 6f 73 65 73 20 6f 66 20 6e 61 6d 65 73 20 6f 66 20 6c 69 63 blicity.purposes.of.names.of.lic
6260 65 6e 73 6f 72 73 20 6f 72 0a 20 20 20 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 6d 61 74 ensors.or.....authors.of.the.mat
6280 65 72 69 61 6c 3b 20 6f 72 0a 0a 20 20 20 20 65 29 20 44 65 63 6c 69 6e 69 6e 67 20 74 6f 20 67 erial;.or......e).Declining.to.g
62a0 72 61 6e 74 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 72 61 64 65 6d 61 72 6b 20 6c 61 77 20 rant.rights.under.trademark.law.
62c0 66 6f 72 20 75 73 65 20 6f 66 20 73 6f 6d 65 0a 20 20 20 20 74 72 61 64 65 20 6e 61 6d 65 73 2c for.use.of.some.....trade.names,
62e0 20 74 72 61 64 65 6d 61 72 6b 73 2c 20 6f 72 20 73 65 72 76 69 63 65 20 6d 61 72 6b 73 3b 20 6f .trademarks,.or.service.marks;.o
6300 72 0a 0a 20 20 20 20 66 29 20 52 65 71 75 69 72 69 6e 67 20 69 6e 64 65 6d 6e 69 66 69 63 61 74 r......f).Requiring.indemnificat
6320 69 6f 6e 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 20 6f 66 20 ion.of.licensors.and.authors.of.
6340 74 68 61 74 0a 20 20 20 20 6d 61 74 65 72 69 61 6c 20 62 79 20 61 6e 79 6f 6e 65 20 77 68 6f 20 that.....material.by.anyone.who.
6360 63 6f 6e 76 65 79 73 20 74 68 65 20 6d 61 74 65 72 69 61 6c 20 28 6f 72 20 6d 6f 64 69 66 69 65 conveys.the.material.(or.modifie
6380 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 20 20 20 20 69 74 29 20 77 69 74 68 20 63 6f 6e 74 72 d.versions.of.....it).with.contr
63a0 61 63 74 75 61 6c 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 actual.assumptions.of.liability.
63c0 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 2c 20 66 6f 72 0a 20 20 20 20 61 6e 79 20 6c 69 to.the.recipient,.for.....any.li
63e0 61 62 69 6c 69 74 79 20 74 68 61 74 20 74 68 65 73 65 20 63 6f 6e 74 72 61 63 74 75 61 6c 20 61 ability.that.these.contractual.a
6400 73 73 75 6d 70 74 69 6f 6e 73 20 64 69 72 65 63 74 6c 79 20 69 6d 70 6f 73 65 20 6f 6e 0a 20 20 ssumptions.directly.impose.on...
6420 20 20 74 68 6f 73 65 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 2e 0a 0a ..those.licensors.and.authors...
6440 20 20 41 6c 6c 20 6f 74 68 65 72 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 61 64 64 69 74 ..All.other.non-permissive.addit
6460 69 6f 6e 61 6c 20 74 65 72 6d 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 22 66 75 72 74 ional.terms.are.considered."furt
6480 68 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 73 22 20 77 69 74 68 69 6e 20 74 68 65 20 6d 65 61 her.restrictions".within.the.mea
64a0 6e 69 6e 67 20 6f 66 20 73 65 63 74 69 6f 6e 20 31 30 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 ning.of.section.10...If.the.Prog
64c0 72 61 6d 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 64 20 69 74 2c 20 6f 72 20 61 6e 79 20 70 ram.as.you.received.it,.or.any.p
64e0 61 72 74 20 6f 66 20 69 74 2c 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 6f 74 69 63 65 20 73 74 61 art.of.it,.contains.a.notice.sta
6500 74 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 ting.that.it.is.governed.by.this
6520 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 20 74 65 72 6d 20 74 68 61 74 20 .License.along.with.a.term.that.
6540 69 73 20 61 20 66 75 72 74 68 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 79 6f 75 20 6d 61 is.a.further.restriction,.you.ma
6560 79 20 72 65 6d 6f 76 65 20 74 68 61 74 20 74 65 72 6d 2e 20 20 49 66 20 61 20 6c 69 63 65 6e 73 y.remove.that.term...If.a.licens
6580 65 20 64 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 0a 61 20 66 75 72 74 68 65 72 20 72 65 e.document.contains.a.further.re
65a0 73 74 72 69 63 74 69 6f 6e 20 62 75 74 20 70 65 72 6d 69 74 73 20 72 65 6c 69 63 65 6e 73 69 6e striction.but.permits.relicensin
65c0 67 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 g.or.conveying.under.this.Licens
65e0 65 2c 20 79 6f 75 20 6d 61 79 20 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b e,.you.may.add.to.a.covered.work
6600 20 6d 61 74 65 72 69 61 6c 20 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 65 20 74 65 72 6d 73 0a .material.governed.by.the.terms.
6620 6f 66 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 70 72 6f 76 69 64 of.that.license.document,.provid
6640 65 64 20 74 68 61 74 20 74 68 65 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 20 ed.that.the.further.restriction.
6660 64 6f 65 73 0a 6e 6f 74 20 73 75 72 76 69 76 65 20 73 75 63 68 20 72 65 6c 69 63 65 6e 73 69 6e does.not.survive.such.relicensin
6680 67 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 49 66 20 79 6f 75 20 61 64 64 20 74 65 g.or.conveying.....If.you.add.te
66a0 72 6d 73 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 63 63 6f 72 64 20 rms.to.a.covered.work.in.accord.
66c0 77 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 2c 20 79 6f 75 0a 6d 75 73 74 20 70 6c 61 63 with.this.section,.you.must.plac
66e0 65 2c 20 69 6e 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2c e,.in.the.relevant.source.files,
6700 20 61 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 74 68 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 74 .a.statement.of.the.additional.t
6720 65 72 6d 73 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 74 68 6f 73 65 20 66 69 6c 65 73 2c 20 erms.that.apply.to.those.files,.
6740 6f 72 20 61 20 6e 6f 74 69 63 65 20 69 6e 64 69 63 61 74 69 6e 67 0a 77 68 65 72 65 20 74 6f 20 or.a.notice.indicating.where.to.
6760 66 69 6e 64 20 74 68 65 20 61 70 70 6c 69 63 61 62 6c 65 20 74 65 72 6d 73 2e 0a 0a 20 20 41 64 find.the.applicable.terms.....Ad
6780 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 70 65 72 6d 69 73 73 69 76 65 20 6f 72 20 6e 6f ditional.terms,.permissive.or.no
67a0 6e 2d 70 65 72 6d 69 73 73 69 76 65 2c 20 6d 61 79 20 62 65 20 73 74 61 74 65 64 20 69 6e 20 74 n-permissive,.may.be.stated.in.t
67c0 68 65 0a 66 6f 72 6d 20 6f 66 20 61 20 73 65 70 61 72 61 74 65 6c 79 20 77 72 69 74 74 65 6e 20 he.form.of.a.separately.written.
67e0 6c 69 63 65 6e 73 65 2c 20 6f 72 20 73 74 61 74 65 64 20 61 73 20 65 78 63 65 70 74 69 6f 6e 73 license,.or.stated.as.exceptions
6800 3b 0a 74 68 65 20 61 62 6f 76 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 70 70 6c 79 20 65 ;.the.above.requirements.apply.e
6820 69 74 68 65 72 20 77 61 79 2e 0a 0a 20 20 38 2e 20 54 65 72 6d 69 6e 61 74 69 6f 6e 2e 0a 0a 20 ither.way.....8..Termination....
6840 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 70 72 6f 70 61 67 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 .You.may.not.propagate.or.modify
6860 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 65 78 63 65 70 74 20 61 73 20 65 78 70 72 65 73 .a.covered.work.except.as.expres
6880 73 6c 79 0a 70 72 6f 76 69 64 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e sly.provided.under.this.License.
68a0 20 20 41 6e 79 20 61 74 74 65 6d 70 74 20 6f 74 68 65 72 77 69 73 65 20 74 6f 20 70 72 6f 70 61 ..Any.attempt.otherwise.to.propa
68c0 67 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 69 74 20 69 73 20 76 6f 69 64 2c 20 61 6e 64 20 77 gate.or.modify.it.is.void,.and.w
68e0 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 72 ill.automatically.terminate.your
6900 20 72 69 67 68 74 73 20 75 6e 64 65 72 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 69 6e 63 6c .rights.under.this.License.(incl
6920 75 64 69 6e 67 20 61 6e 79 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 73 20 67 72 61 6e 74 65 uding.any.patent.licenses.grante
6940 64 20 75 6e 64 65 72 20 74 68 65 20 74 68 69 72 64 0a 70 61 72 61 67 72 61 70 68 20 6f 66 20 73 d.under.the.third.paragraph.of.s
6960 65 63 74 69 6f 6e 20 31 31 29 2e 0a 0a 20 20 48 6f 77 65 76 65 72 2c 20 69 66 20 79 6f 75 20 63 ection.11).....However,.if.you.c
6980 65 61 73 65 20 61 6c 6c 20 76 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e ease.all.violation.of.this.Licen
69a0 73 65 2c 20 74 68 65 6e 20 79 6f 75 72 0a 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 se,.then.your.license.from.a.par
69c0 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 20 72 65 69 6e ticular.copyright.holder.is.rein
69e0 73 74 61 74 65 64 20 28 61 29 0a 70 72 6f 76 69 73 69 6f 6e 61 6c 6c 79 2c 20 75 6e 6c 65 73 73 stated.(a).provisionally,.unless
6a00 20 61 6e 64 20 75 6e 74 69 6c 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 .and.until.the.copyright.holder.
6a20 65 78 70 6c 69 63 69 74 6c 79 20 61 6e 64 0a 66 69 6e 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 explicitly.and.finally.terminate
6a40 73 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 2c 20 61 6e 64 20 28 62 29 20 70 65 72 6d 61 6e 65 6e s.your.license,.and.(b).permanen
6a60 74 6c 79 2c 20 69 66 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 0a 68 6f 6c 64 65 72 20 66 61 69 tly,.if.the.copyright.holder.fai
6a80 6c 73 20 74 6f 20 6e 6f 74 69 66 79 20 79 6f 75 20 6f 66 20 74 68 65 20 76 69 6f 6c 61 74 69 6f ls.to.notify.you.of.the.violatio
6aa0 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 0a 70 72 69 6f 72 n.by.some.reasonable.means.prior
6ac0 20 74 6f 20 36 30 20 64 61 79 73 20 61 66 74 65 72 20 74 68 65 20 63 65 73 73 61 74 69 6f 6e 2e .to.60.days.after.the.cessation.
6ae0 0a 0a 20 20 4d 6f 72 65 6f 76 65 72 2c 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 ....Moreover,.your.license.from.
6b00 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 a.particular.copyright.holder.is
6b20 0a 72 65 69 6e 73 74 61 74 65 64 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 69 66 20 74 68 65 20 63 .reinstated.permanently.if.the.c
6b40 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 6e 6f 74 69 66 69 65 73 20 79 6f 75 20 6f 66 20 opyright.holder.notifies.you.of.
6b60 74 68 65 0a 76 69 6f 6c 61 74 69 6f 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 the.violation.by.some.reasonable
6b80 20 6d 65 61 6e 73 2c 20 74 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 .means,.this.is.the.first.time.y
6ba0 6f 75 20 68 61 76 65 0a 72 65 63 65 69 76 65 64 20 6e 6f 74 69 63 65 20 6f 66 20 76 69 6f 6c 61 ou.have.received.notice.of.viola
6bc0 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 66 6f 72 20 61 6e 79 20 77 6f tion.of.this.License.(for.any.wo
6be0 72 6b 29 20 66 72 6f 6d 20 74 68 61 74 0a 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 2c 20 rk).from.that.copyright.holder,.
6c00 61 6e 64 20 79 6f 75 20 63 75 72 65 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 70 72 69 6f 72 and.you.cure.the.violation.prior
6c20 20 74 6f 20 33 30 20 64 61 79 73 20 61 66 74 65 72 0a 79 6f 75 72 20 72 65 63 65 69 70 74 20 6f .to.30.days.after.your.receipt.o
6c40 66 20 74 68 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20 54 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 f.the.notice.....Termination.of.
6c60 79 6f 75 72 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 64 your.rights.under.this.section.d
6c80 6f 65 73 20 6e 6f 74 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 0a 6c 69 63 65 6e 73 65 73 20 6f oes.not.terminate.the.licenses.o
6ca0 66 20 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 63 6f 70 69 f.parties.who.have.received.copi
6cc0 65 73 20 6f 72 20 72 69 67 68 74 73 20 66 72 6f 6d 20 79 6f 75 20 75 6e 64 65 72 0a 74 68 69 73 es.or.rights.from.you.under.this
6ce0 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 72 20 72 69 67 68 74 73 20 68 61 76 65 20 62 .License...If.your.rights.have.b
6d00 65 65 6e 20 74 65 72 6d 69 6e 61 74 65 64 20 61 6e 64 20 6e 6f 74 20 70 65 72 6d 61 6e 65 6e 74 een.terminated.and.not.permanent
6d20 6c 79 0a 72 65 69 6e 73 74 61 74 65 64 2c 20 79 6f 75 20 64 6f 20 6e 6f 74 20 71 75 61 6c 69 66 ly.reinstated,.you.do.not.qualif
6d40 79 20 74 6f 20 72 65 63 65 69 76 65 20 6e 65 77 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 74 68 y.to.receive.new.licenses.for.th
6d60 65 20 73 61 6d 65 0a 6d 61 74 65 72 69 61 6c 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 20 31 30 e.same.material.under.section.10
6d80 2e 0a 0a 20 20 39 2e 20 41 63 63 65 70 74 61 6e 63 65 20 4e 6f 74 20 52 65 71 75 69 72 65 64 20 .....9..Acceptance.Not.Required.
6da0 66 6f 72 20 48 61 76 69 6e 67 20 43 6f 70 69 65 73 2e 0a 0a 20 20 59 6f 75 20 61 72 65 20 6e 6f for.Having.Copies.....You.are.no
6dc0 74 20 72 65 71 75 69 72 65 64 20 74 6f 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 t.required.to.accept.this.Licens
6de0 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 72 65 63 65 69 76 65 20 6f 72 0a 72 75 6e 20 61 20 63 e.in.order.to.receive.or.run.a.c
6e00 6f 70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 20 20 41 6e 63 69 6c 6c 61 72 79 20 70 opy.of.the.Program...Ancillary.p
6e20 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 6f 63 63 ropagation.of.a.covered.work.occ
6e40 75 72 72 69 6e 67 20 73 6f 6c 65 6c 79 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f urring.solely.as.a.consequence.o
6e60 66 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f f.using.peer-to-peer.transmissio
6e80 6e 0a 74 6f 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6c 69 6b 65 77 69 73 65 20 64 6f 65 n.to.receive.a.copy.likewise.doe
6ea0 73 20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 63 63 65 70 74 61 6e 63 65 2e 20 20 48 6f 77 65 76 s.not.require.acceptance...Howev
6ec0 65 72 2c 0a 6e 6f 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 69 73 20 4c 69 63 65 er,.nothing.other.than.this.Lice
6ee0 6e 73 65 20 67 72 61 6e 74 73 20 79 6f 75 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 6f nse.grants.you.permission.to.pro
6f00 70 61 67 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 pagate.or.modify.any.covered.wor
6f20 6b 2e 20 20 54 68 65 73 65 20 61 63 74 69 6f 6e 73 20 69 6e 66 72 69 6e 67 65 20 63 6f 70 79 72 k...These.actions.infringe.copyr
6f40 69 67 68 74 20 69 66 20 79 6f 75 20 64 6f 0a 6e 6f 74 20 61 63 63 65 70 74 20 74 68 69 73 20 4c ight.if.you.do.not.accept.this.L
6f60 69 63 65 6e 73 65 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 icense...Therefore,.by.modifying
6f80 20 6f 72 20 70 72 6f 70 61 67 61 74 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 .or.propagating.a.covered.work,.
6fa0 79 6f 75 20 69 6e 64 69 63 61 74 65 20 79 6f 75 72 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 you.indicate.your.acceptance.of.
6fc0 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 64 6f 20 73 6f 2e 0a 0a 20 20 31 30 2e 20 41 75 this.License.to.do.so.....10..Au
6fe0 74 6f 6d 61 74 69 63 20 4c 69 63 65 6e 73 69 6e 67 20 6f 66 20 44 6f 77 6e 73 74 72 65 61 6d 20 tomatic.Licensing.of.Downstream.
7000 52 65 63 69 70 69 65 6e 74 73 2e 0a 0a 20 20 45 61 63 68 20 74 69 6d 65 20 79 6f 75 20 63 6f 6e Recipients.....Each.time.you.con
7020 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 74 68 65 20 72 65 63 69 70 69 65 6e vey.a.covered.work,.the.recipien
7040 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 72 65 63 65 69 76 65 73 20 61 20 6c 69 63 65 6e t.automatically.receives.a.licen
7060 73 65 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6c 69 63 65 6e 73 6f 72 73 2c 20 se.from.the.original.licensors,.
7080 74 6f 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 61 to.run,.modify.and.propagate.tha
70a0 74 20 77 6f 72 6b 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e t.work,.subject.to.this.License.
70c0 20 20 59 6f 75 20 61 72 65 20 6e 6f 74 20 72 65 73 70 6f 6e 73 69 62 6c 65 0a 66 6f 72 20 65 6e ..You.are.not.responsible.for.en
70e0 66 6f 72 63 69 6e 67 20 63 6f 6d 70 6c 69 61 6e 63 65 20 62 79 20 74 68 69 72 64 20 70 61 72 74 forcing.compliance.by.third.part
7100 69 65 73 20 77 69 74 68 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 41 6e 20 22 65 6e ies.with.this.License.....An."en
7120 74 69 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 22 20 69 73 20 61 20 74 72 61 6e 73 61 63 74 69 tity.transaction".is.a.transacti
7140 6f 6e 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 61 6e 0a 6f 72 on.transferring.control.of.an.or
7160 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 6c 79 20 61 6c 6c ganization,.or.substantially.all
7180 20 61 73 73 65 74 73 20 6f 66 20 6f 6e 65 2c 20 6f 72 20 73 75 62 64 69 76 69 64 69 6e 67 20 61 .assets.of.one,.or.subdividing.a
71a0 6e 0a 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 6d 65 72 67 69 6e 67 20 6f 72 67 61 6e n.organization,.or.merging.organ
71c0 69 7a 61 74 69 6f 6e 73 2e 20 20 49 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 izations...If.propagation.of.a.c
71e0 6f 76 65 72 65 64 0a 77 6f 72 6b 20 72 65 73 75 6c 74 73 20 66 72 6f 6d 20 61 6e 20 65 6e 74 69 overed.work.results.from.an.enti
7200 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 65 61 63 68 20 70 61 72 74 79 20 74 6f 20 74 68 ty.transaction,.each.party.to.th
7220 61 74 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 68 6f 20 72 65 63 65 69 76 65 73 20 61 20 63 6f at.transaction.who.receives.a.co
7240 70 79 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 6c 73 6f 20 72 65 63 65 69 76 65 73 20 77 68 61 py.of.the.work.also.receives.wha
7260 74 65 76 65 72 0a 6c 69 63 65 6e 73 65 73 20 74 6f 20 74 68 65 20 77 6f 72 6b 20 74 68 65 20 70 tever.licenses.to.the.work.the.p
7280 61 72 74 79 27 73 20 70 72 65 64 65 63 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 20 68 arty's.predecessor.in.interest.h
72a0 61 64 20 6f 72 20 63 6f 75 6c 64 0a 67 69 76 65 20 75 6e 64 65 72 20 74 68 65 20 70 72 65 76 69 ad.or.could.give.under.the.previ
72c0 6f 75 73 20 70 61 72 61 67 72 61 70 68 2c 20 70 6c 75 73 20 61 20 72 69 67 68 74 20 74 6f 20 70 ous.paragraph,.plus.a.right.to.p
72e0 6f 73 73 65 73 73 69 6f 6e 20 6f 66 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 ossession.of.the.Corresponding.S
7300 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 66 72 6f 6d 20 74 68 65 20 70 72 65 64 65 ource.of.the.work.from.the.prede
7320 63 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 2c 20 69 66 0a 74 68 65 20 70 72 65 64 65 cessor.in.interest,.if.the.prede
7340 63 65 73 73 6f 72 20 68 61 73 20 69 74 20 6f 72 20 63 61 6e 20 67 65 74 20 69 74 20 77 69 74 68 cessor.has.it.or.can.get.it.with
7360 20 72 65 61 73 6f 6e 61 62 6c 65 20 65 66 66 6f 72 74 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 .reasonable.efforts.....You.may.
7380 6e 6f 74 20 69 6d 70 6f 73 65 20 61 6e 79 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 not.impose.any.further.restricti
73a0 6f 6e 73 20 6f 6e 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 20 74 68 65 0a 72 69 67 68 74 ons.on.the.exercise.of.the.right
73c0 73 20 67 72 61 6e 74 65 64 20 6f 72 20 61 66 66 69 72 6d 65 64 20 75 6e 64 65 72 20 74 68 69 73 s.granted.or.affirmed.under.this
73e0 20 4c 69 63 65 6e 73 65 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 79 6f 75 20 6d 61 79 0a .License...For.example,.you.may.
7400 6e 6f 74 20 69 6d 70 6f 73 65 20 61 20 6c 69 63 65 6e 73 65 20 66 65 65 2c 20 72 6f 79 61 6c 74 not.impose.a.license.fee,.royalt
7420 79 2c 20 6f 72 20 6f 74 68 65 72 20 63 68 61 72 67 65 20 66 6f 72 20 65 78 65 72 63 69 73 65 20 y,.or.other.charge.for.exercise.
7440 6f 66 0a 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 of.rights.granted.under.this.Lic
7460 65 6e 73 65 2c 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 69 6e 69 74 69 61 74 65 20 6c ense,.and.you.may.not.initiate.l
7480 69 74 69 67 61 74 69 6f 6e 0a 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 63 72 6f 73 73 2d 63 6c 61 itigation.(including.a.cross-cla
74a0 69 6d 20 6f 72 20 63 6f 75 6e 74 65 72 63 6c 61 69 6d 20 69 6e 20 61 20 6c 61 77 73 75 69 74 29 im.or.counterclaim.in.a.lawsuit)
74c0 20 61 6c 6c 65 67 69 6e 67 20 74 68 61 74 0a 61 6e 79 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 20 .alleging.that.any.patent.claim.
74e0 69 73 20 69 6e 66 72 69 6e 67 65 64 20 62 79 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 73 is.infringed.by.making,.using,.s
7500 65 6c 6c 69 6e 67 2c 20 6f 66 66 65 72 69 6e 67 20 66 6f 72 0a 73 61 6c 65 2c 20 6f 72 20 69 6d elling,.offering.for.sale,.or.im
7520 70 6f 72 74 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 6e 79 20 70 6f 72 74 69 porting.the.Program.or.any.porti
7540 6f 6e 20 6f 66 20 69 74 2e 0a 0a 20 20 31 31 2e 20 50 61 74 65 6e 74 73 2e 0a 0a 20 20 41 20 22 on.of.it.....11..Patents.....A."
7560 63 6f 6e 74 72 69 62 75 74 6f 72 22 20 69 73 20 61 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 contributor".is.a.copyright.hold
7580 65 72 20 77 68 6f 20 61 75 74 68 6f 72 69 7a 65 73 20 75 73 65 20 75 6e 64 65 72 20 74 68 69 73 er.who.authorizes.use.under.this
75a0 0a 4c 69 63 65 6e 73 65 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 20 77 6f 72 .License.of.the.Program.or.a.wor
75c0 6b 20 6f 6e 20 77 68 69 63 68 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 73 20 62 61 73 65 64 2e k.on.which.the.Program.is.based.
75e0 20 20 54 68 65 0a 77 6f 72 6b 20 74 68 75 73 20 6c 69 63 65 6e 73 65 64 20 69 73 20 63 61 6c 6c ..The.work.thus.licensed.is.call
7600 65 64 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 63 6f 6e 74 72 69 62 75 74 6f ed.the.contributor's."contributo
7620 72 20 76 65 72 73 69 6f 6e 22 2e 0a 0a 20 20 41 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 r.version".....A.contributor's."
7640 65 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 22 20 61 72 65 20 61 6c 6c essential.patent.claims".are.all
7660 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 0a 6f 77 6e 65 64 20 6f 72 20 63 6f 6e 74 72 6f 6c 6c .patent.claims.owned.or.controll
7680 65 64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 2c 20 77 68 65 74 68 65 72 20 61 ed.by.the.contributor,.whether.a
76a0 6c 72 65 61 64 79 20 61 63 71 75 69 72 65 64 20 6f 72 0a 68 65 72 65 61 66 74 65 72 20 61 63 71 lready.acquired.or.hereafter.acq
76c0 75 69 72 65 64 2c 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 62 uired,.that.would.be.infringed.b
76e0 79 20 73 6f 6d 65 20 6d 61 6e 6e 65 72 2c 20 70 65 72 6d 69 74 74 65 64 0a 62 79 20 74 68 69 73 y.some.manner,.permitted.by.this
7700 20 4c 69 63 65 6e 73 65 2c 20 6f 66 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 6f 72 20 73 .License,.of.making,.using,.or.s
7720 65 6c 6c 69 6e 67 20 69 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2c 0a elling.its.contributor.version,.
7740 62 75 74 20 64 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 63 6c 61 69 6d 73 20 74 68 61 74 20 77 but.do.not.include.claims.that.w
7760 6f 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 6f 6e 6c 79 20 61 73 20 61 0a 63 6f 6e 73 ould.be.infringed.only.as.a.cons
7780 65 71 75 65 6e 63 65 20 6f 66 20 66 75 72 74 68 65 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 equence.of.further.modification.
77a0 6f 66 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 20 20 46 6f 72 of.the.contributor.version...For
77c0 0a 70 75 72 70 6f 73 65 73 20 6f 66 20 74 68 69 73 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 22 63 .purposes.of.this.definition,."c
77e0 6f 6e 74 72 6f 6c 22 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 72 69 67 68 74 20 74 6f 20 67 72 ontrol".includes.the.right.to.gr
7800 61 6e 74 0a 70 61 74 65 6e 74 20 73 75 62 6c 69 63 65 6e 73 65 73 20 69 6e 20 61 20 6d 61 6e 6e ant.patent.sublicenses.in.a.mann
7820 65 72 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 er.consistent.with.the.requireme
7840 6e 74 73 20 6f 66 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 45 61 63 68 20 63 6f 6e nts.of.this.License.....Each.con
7860 74 72 69 62 75 74 6f 72 20 67 72 61 6e 74 73 20 79 6f 75 20 61 20 6e 6f 6e 2d 65 78 63 6c 75 73 tributor.grants.you.a.non-exclus
7880 69 76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 20 72 6f 79 61 6c 74 79 2d 66 72 65 65 0a 70 61 74 ive,.worldwide,.royalty-free.pat
78a0 65 6e 74 20 6c 69 63 65 6e 73 65 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f ent.license.under.the.contributo
78c0 72 27 73 20 65 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 2c 20 74 6f 0a r's.essential.patent.claims,.to.
78e0 6d 61 6b 65 2c 20 75 73 65 2c 20 73 65 6c 6c 2c 20 6f 66 66 65 72 20 66 6f 72 20 73 61 6c 65 2c make,.use,.sell,.offer.for.sale,
7900 20 69 6d 70 6f 72 74 20 61 6e 64 20 6f 74 68 65 72 77 69 73 65 20 72 75 6e 2c 20 6d 6f 64 69 66 .import.and.otherwise.run,.modif
7920 79 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 y.and.propagate.the.contents.of.
7940 69 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 49 6e 20 74 its.contributor.version.....In.t
7960 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 72 65 65 20 70 61 72 61 67 72 61 70 68 73 2c 20 61 he.following.three.paragraphs,.a
7980 20 22 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 22 20 69 73 20 61 6e 79 20 65 78 70 72 65 73 73 ."patent.license".is.any.express
79a0 0a 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 69 74 6d 65 6e 74 2c 20 68 6f 77 65 76 65 .agreement.or.commitment,.howeve
79c0 72 20 64 65 6e 6f 6d 69 6e 61 74 65 64 2c 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 20 r.denominated,.not.to.enforce.a.
79e0 70 61 74 65 6e 74 0a 28 73 75 63 68 20 61 73 20 61 6e 20 65 78 70 72 65 73 73 20 70 65 72 6d 69 patent.(such.as.an.express.permi
7a00 73 73 69 6f 6e 20 74 6f 20 70 72 61 63 74 69 63 65 20 61 20 70 61 74 65 6e 74 20 6f 72 20 63 6f ssion.to.practice.a.patent.or.co
7a20 76 65 6e 61 6e 74 20 6e 6f 74 20 74 6f 0a 73 75 65 20 66 6f 72 20 70 61 74 65 6e 74 20 69 6e 66 venant.not.to.sue.for.patent.inf
7a40 72 69 6e 67 65 6d 65 6e 74 29 2e 20 20 54 6f 20 22 67 72 61 6e 74 22 20 73 75 63 68 20 61 20 70 ringement)...To."grant".such.a.p
7a60 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 61 0a 70 61 72 74 79 20 6d 65 61 6e 73 20 74 atent.license.to.a.party.means.t
7a80 6f 20 6d 61 6b 65 20 73 75 63 68 20 61 6e 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d o.make.such.an.agreement.or.comm
7aa0 69 74 6d 65 6e 74 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 0a 70 61 74 65 6e 74 20 61 itment.not.to.enforce.a.patent.a
7ac0 67 61 69 6e 73 74 20 74 68 65 20 70 61 72 74 79 2e 0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 gainst.the.party.....If.you.conv
7ae0 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 6b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c ey.a.covered.work,.knowingly.rel
7b00 79 69 6e 67 20 6f 6e 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 0a 61 6e 64 20 74 68 ying.on.a.patent.license,.and.th
7b20 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f e.Corresponding.Source.of.the.wo
7b40 72 6b 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 6e 79 6f 6e 65 0a 74 rk.is.not.available.for.anyone.t
7b60 6f 20 63 6f 70 79 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 20 61 6e 64 20 75 6e 64 65 72 o.copy,.free.of.charge.and.under
7b80 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 72 6f .the.terms.of.this.License,.thro
7ba0 75 67 68 20 61 0a 70 75 62 6c 69 63 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 6e 65 74 77 6f 72 6b ugh.a.publicly.available.network
7bc0 20 73 65 72 76 65 72 20 6f 72 20 6f 74 68 65 72 20 72 65 61 64 69 6c 79 20 61 63 63 65 73 73 69 .server.or.other.readily.accessi
7be0 62 6c 65 20 6d 65 61 6e 73 2c 0a 74 68 65 6e 20 79 6f 75 20 6d 75 73 74 20 65 69 74 68 65 72 20 ble.means,.then.you.must.either.
7c00 28 31 29 20 63 61 75 73 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 (1).cause.the.Corresponding.Sour
7c20 63 65 20 74 6f 20 62 65 20 73 6f 0a 61 76 61 69 6c 61 62 6c 65 2c 20 6f 72 20 28 32 29 20 61 72 ce.to.be.so.available,.or.(2).ar
7c40 72 61 6e 67 65 20 74 6f 20 64 65 70 72 69 76 65 20 79 6f 75 72 73 65 6c 66 20 6f 66 20 74 68 65 range.to.deprive.yourself.of.the
7c60 20 62 65 6e 65 66 69 74 20 6f 66 20 74 68 65 0a 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 66 .benefit.of.the.patent.license.f
7c80 6f 72 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61 72 20 77 6f 72 6b 2c 20 6f 72 20 28 33 29 20 or.this.particular.work,.or.(3).
7ca0 61 72 72 61 6e 67 65 2c 20 69 6e 20 61 20 6d 61 6e 6e 65 72 0a 63 6f 6e 73 69 73 74 65 6e 74 20 arrange,.in.a.manner.consistent.
7cc0 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f 66 20 74 68 69 73 20 4c 69 with.the.requirements.of.this.Li
7ce0 63 65 6e 73 65 2c 20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 20 70 61 74 65 6e 74 0a 6c 69 63 65 cense,.to.extend.the.patent.lice
7d00 6e 73 65 20 74 6f 20 64 6f 77 6e 73 74 72 65 61 6d 20 72 65 63 69 70 69 65 6e 74 73 2e 20 20 22 nse.to.downstream.recipients..."
7d20 4b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 69 6e 67 22 20 6d 65 61 6e 73 20 79 6f 75 20 68 61 76 Knowingly.relying".means.you.hav
7d40 65 0a 61 63 74 75 61 6c 20 6b 6e 6f 77 6c 65 64 67 65 20 74 68 61 74 2c 20 62 75 74 20 66 6f 72 e.actual.knowledge.that,.but.for
7d60 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 20 79 6f 75 72 20 63 6f 6e 76 65 79 .the.patent.license,.your.convey
7d80 69 6e 67 20 74 68 65 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 20 63 6f 75 6e 74 72 ing.the.covered.work.in.a.countr
7da0 79 2c 20 6f 72 20 79 6f 75 72 20 72 65 63 69 70 69 65 6e 74 27 73 20 75 73 65 20 6f 66 20 74 68 y,.or.your.recipient's.use.of.th
7dc0 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 20 63 6f 75 6e 74 72 79 2c 20 77 6f 75 e.covered.work.in.a.country,.wou
7de0 6c 64 20 69 6e 66 72 69 6e 67 65 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69 64 65 6e 74 69 66 69 ld.infringe.one.or.more.identifi
7e00 61 62 6c 65 20 70 61 74 65 6e 74 73 20 69 6e 20 74 68 61 74 0a 63 6f 75 6e 74 72 79 20 74 68 61 able.patents.in.that.country.tha
7e20 74 20 79 6f 75 20 68 61 76 65 20 72 65 61 73 6f 6e 20 74 6f 20 62 65 6c 69 65 76 65 20 61 72 65 t.you.have.reason.to.believe.are
7e40 20 76 61 6c 69 64 2e 0a 0a 20 20 49 66 2c 20 70 75 72 73 75 61 6e 74 20 74 6f 20 6f 72 20 69 6e .valid.....If,.pursuant.to.or.in
7e60 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 .connection.with.a.single.transa
7e80 63 74 69 6f 6e 20 6f 72 0a 61 72 72 61 6e 67 65 6d 65 6e 74 2c 20 79 6f 75 20 63 6f 6e 76 65 79 ction.or.arrangement,.you.convey
7ea0 2c 20 6f 72 20 70 72 6f 70 61 67 61 74 65 20 62 79 20 70 72 6f 63 75 72 69 6e 67 20 63 6f 6e 76 ,.or.propagate.by.procuring.conv
7ec0 65 79 61 6e 63 65 20 6f 66 2c 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 67 eyance.of,.a.covered.work,.and.g
7ee0 72 61 6e 74 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 73 6f 6d 65 20 6f 66 rant.a.patent.license.to.some.of
7f00 20 74 68 65 20 70 61 72 74 69 65 73 0a 72 65 63 65 69 76 69 6e 67 20 74 68 65 20 63 6f 76 65 72 .the.parties.receiving.the.cover
7f20 65 64 20 77 6f 72 6b 20 61 75 74 68 6f 72 69 7a 69 6e 67 20 74 68 65 6d 20 74 6f 20 75 73 65 2c ed.work.authorizing.them.to.use,
7f40 20 70 72 6f 70 61 67 61 74 65 2c 20 6d 6f 64 69 66 79 0a 6f 72 20 63 6f 6e 76 65 79 20 61 20 73 .propagate,.modify.or.convey.a.s
7f60 70 65 63 69 66 69 63 20 63 6f 70 79 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b pecific.copy.of.the.covered.work
7f80 2c 20 74 68 65 6e 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 0a 79 6f 75 20 67 72 ,.then.the.patent.license.you.gr
7fa0 61 6e 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 65 78 74 65 6e 64 65 64 20 74 6f ant.is.automatically.extended.to
7fc0 20 61 6c 6c 20 72 65 63 69 70 69 65 6e 74 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 0a 77 .all.recipients.of.the.covered.w
7fe0 6f 72 6b 20 61 6e 64 20 77 6f 72 6b 73 20 62 61 73 65 64 20 6f 6e 20 69 74 2e 0a 0a 20 20 41 20 ork.and.works.based.on.it.....A.
8000 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 69 73 20 22 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 patent.license.is."discriminator
8020 79 22 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 77 69 74 68 69 6e y".if.it.does.not.include.within
8040 0a 74 68 65 20 73 63 6f 70 65 20 6f 66 20 69 74 73 20 63 6f 76 65 72 61 67 65 2c 20 70 72 6f 68 .the.scope.of.its.coverage,.proh
8060 69 62 69 74 73 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 2c 20 6f 72 20 69 73 0a 63 6f 6e ibits.the.exercise.of,.or.is.con
8080 64 69 74 69 6f 6e 65 64 20 6f 6e 20 74 68 65 20 6e 6f 6e 2d 65 78 65 72 63 69 73 65 20 6f 66 20 ditioned.on.the.non-exercise.of.
80a0 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68 65 20 72 69 67 68 74 73 20 74 68 61 74 20 61 one.or.more.of.the.rights.that.a
80c0 72 65 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 re.specifically.granted.under.th
80e0 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 is.License...You.may.not.convey.
8100 61 20 63 6f 76 65 72 65 64 0a 77 6f 72 6b 20 69 66 20 79 6f 75 20 61 72 65 20 61 20 70 61 72 74 a.covered.work.if.you.are.a.part
8120 79 20 74 6f 20 61 6e 20 61 72 72 61 6e 67 65 6d 65 6e 74 20 77 69 74 68 20 61 20 74 68 69 72 64 y.to.an.arrangement.with.a.third
8140 20 70 61 72 74 79 20 74 68 61 74 20 69 73 0a 69 6e 20 74 68 65 20 62 75 73 69 6e 65 73 73 20 6f .party.that.is.in.the.business.o
8160 66 20 64 69 73 74 72 69 62 75 74 69 6e 67 20 73 6f 66 74 77 61 72 65 2c 20 75 6e 64 65 72 20 77 f.distributing.software,.under.w
8180 68 69 63 68 20 79 6f 75 20 6d 61 6b 65 20 70 61 79 6d 65 6e 74 0a 74 6f 20 74 68 65 20 74 68 69 hich.you.make.payment.to.the.thi
81a0 72 64 20 70 61 72 74 79 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 20 rd.party.based.on.the.extent.of.
81c0 79 6f 75 72 20 61 63 74 69 76 69 74 79 20 6f 66 20 63 6f 6e 76 65 79 69 6e 67 0a 74 68 65 20 77 your.activity.of.conveying.the.w
81e0 6f 72 6b 2c 20 61 6e 64 20 75 6e 64 65 72 20 77 68 69 63 68 20 74 68 65 20 74 68 69 72 64 20 70 ork,.and.under.which.the.third.p
8200 61 72 74 79 20 67 72 61 6e 74 73 2c 20 74 6f 20 61 6e 79 20 6f 66 20 74 68 65 0a 70 61 72 74 69 arty.grants,.to.any.of.the.parti
8220 65 73 20 77 68 6f 20 77 6f 75 6c 64 20 72 65 63 65 69 76 65 20 74 68 65 20 63 6f 76 65 72 65 64 es.who.would.receive.the.covered
8240 20 77 6f 72 6b 20 66 72 6f 6d 20 79 6f 75 2c 20 61 20 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 .work.from.you,.a.discriminatory
8260 0a 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 28 61 29 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f .patent.license.(a).in.connectio
8280 6e 20 77 69 74 68 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 n.with.copies.of.the.covered.wor
82a0 6b 0a 63 6f 6e 76 65 79 65 64 20 62 79 20 79 6f 75 20 28 6f 72 20 63 6f 70 69 65 73 20 6d 61 64 k.conveyed.by.you.(or.copies.mad
82c0 65 20 66 72 6f 6d 20 74 68 6f 73 65 20 63 6f 70 69 65 73 29 2c 20 6f 72 20 28 62 29 20 70 72 69 e.from.those.copies),.or.(b).pri
82e0 6d 61 72 69 6c 79 0a 66 6f 72 20 61 6e 64 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 marily.for.and.in.connection.wit
8300 68 20 73 70 65 63 69 66 69 63 20 70 72 6f 64 75 63 74 73 20 6f 72 20 63 6f 6d 70 69 6c 61 74 69 h.specific.products.or.compilati
8320 6f 6e 73 20 74 68 61 74 0a 63 6f 6e 74 61 69 6e 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 ons.that.contain.the.covered.wor
8340 6b 2c 20 75 6e 6c 65 73 73 20 79 6f 75 20 65 6e 74 65 72 65 64 20 69 6e 74 6f 20 74 68 61 74 20 k,.unless.you.entered.into.that.
8360 61 72 72 61 6e 67 65 6d 65 6e 74 2c 0a 6f 72 20 74 68 61 74 20 70 61 74 65 6e 74 20 6c 69 63 65 arrangement,.or.that.patent.lice
8380 6e 73 65 20 77 61 73 20 67 72 61 6e 74 65 64 2c 20 70 72 69 6f 72 20 74 6f 20 32 38 20 4d 61 72 nse.was.granted,.prior.to.28.Mar
83a0 63 68 20 32 30 30 37 2e 0a 0a 20 20 4e 6f 74 68 69 6e 67 20 69 6e 20 74 68 69 73 20 4c 69 63 65 ch.2007.....Nothing.in.this.Lice
83c0 6e 73 65 20 73 68 61 6c 6c 20 62 65 20 63 6f 6e 73 74 72 75 65 64 20 61 73 20 65 78 63 6c 75 64 nse.shall.be.construed.as.exclud
83e0 69 6e 67 20 6f 72 20 6c 69 6d 69 74 69 6e 67 0a 61 6e 79 20 69 6d 70 6c 69 65 64 20 6c 69 63 65 ing.or.limiting.any.implied.lice
8400 6e 73 65 20 6f 72 20 6f 74 68 65 72 20 64 65 66 65 6e 73 65 73 20 74 6f 20 69 6e 66 72 69 6e 67 nse.or.other.defenses.to.infring
8420 65 6d 65 6e 74 20 74 68 61 74 20 6d 61 79 0a 6f 74 68 65 72 77 69 73 65 20 62 65 20 61 76 61 69 ement.that.may.otherwise.be.avai
8440 6c 61 62 6c 65 20 74 6f 20 79 6f 75 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 70 61 lable.to.you.under.applicable.pa
8460 74 65 6e 74 20 6c 61 77 2e 0a 0a 20 20 31 32 2e 20 4e 6f 20 53 75 72 72 65 6e 64 65 72 20 6f 66 tent.law.....12..No.Surrender.of
8480 20 4f 74 68 65 72 73 27 20 46 72 65 65 64 6f 6d 2e 0a 0a 20 20 49 66 20 63 6f 6e 64 69 74 69 6f .Others'.Freedom.....If.conditio
84a0 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20 79 6f 75 20 28 77 68 65 74 68 65 72 20 62 ns.are.imposed.on.you.(whether.b
84c0 79 20 63 6f 75 72 74 20 6f 72 64 65 72 2c 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 0a 6f 74 68 65 y.court.order,.agreement.or.othe
84e0 72 77 69 73 65 29 20 74 68 61 74 20 63 6f 6e 74 72 61 64 69 63 74 20 74 68 65 20 63 6f 6e 64 69 rwise).that.contradict.the.condi
8500 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 79 20 64 6f 20 6e tions.of.this.License,.they.do.n
8520 6f 74 0a 65 78 63 75 73 65 20 79 6f 75 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e ot.excuse.you.from.the.condition
8540 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 20 63 61 6e 6e 6f s.of.this.License...If.you.canno
8560 74 20 63 6f 6e 76 65 79 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 73 6f 20 61 73 20 74 6f t.convey.a.covered.work.so.as.to
8580 20 73 61 74 69 73 66 79 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 79 6f 75 72 20 6f 62 6c .satisfy.simultaneously.your.obl
85a0 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 20 61 6e 64 20 igations.under.this.License.and.
85c0 61 6e 79 20 6f 74 68 65 72 20 70 65 72 74 69 6e 65 6e 74 20 6f 62 6c 69 67 61 74 69 6f 6e 73 2c any.other.pertinent.obligations,
85e0 20 74 68 65 6e 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 79 6f 75 20 6d 61 79 0a 6e .then.as.a.consequence.you.may.n
8600 6f 74 20 63 6f 6e 76 65 79 20 69 74 20 61 74 20 61 6c 6c 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c ot.convey.it.at.all...For.exampl
8620 65 2c 20 69 66 20 79 6f 75 20 61 67 72 65 65 20 74 6f 20 74 65 72 6d 73 20 74 68 61 74 20 6f 62 e,.if.you.agree.to.terms.that.ob
8640 6c 69 67 61 74 65 20 79 6f 75 0a 74 6f 20 63 6f 6c 6c 65 63 74 20 61 20 72 6f 79 61 6c 74 79 20 ligate.you.to.collect.a.royalty.
8660 66 6f 72 20 66 75 72 74 68 65 72 20 63 6f 6e 76 65 79 69 6e 67 20 66 72 6f 6d 20 74 68 6f 73 65 for.further.conveying.from.those
8680 20 74 6f 20 77 68 6f 6d 20 79 6f 75 20 63 6f 6e 76 65 79 0a 74 68 65 20 50 72 6f 67 72 61 6d 2c .to.whom.you.convey.the.Program,
86a0 20 74 68 65 20 6f 6e 6c 79 20 77 61 79 20 79 6f 75 20 63 6f 75 6c 64 20 73 61 74 69 73 66 79 20 .the.only.way.you.could.satisfy.
86c0 62 6f 74 68 20 74 68 6f 73 65 20 74 65 72 6d 73 20 61 6e 64 20 74 68 69 73 0a 4c 69 63 65 6e 73 both.those.terms.and.this.Licens
86e0 65 20 77 6f 75 6c 64 20 62 65 20 74 6f 20 72 65 66 72 61 69 6e 20 65 6e 74 69 72 65 6c 79 20 66 e.would.be.to.refrain.entirely.f
8700 72 6f 6d 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 31 33 rom.conveying.the.Program.....13
8720 2e 20 55 73 65 20 77 69 74 68 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 ..Use.with.the.GNU.Affero.Genera
8740 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e l.Public.License.....Notwithstan
8760 64 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 ding.any.other.provision.of.this
8780 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 68 61 76 65 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f .License,.you.have.permission.to
87a0 20 6c 69 6e 6b 20 6f 72 20 63 6f 6d 62 69 6e 65 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 .link.or.combine.any.covered.wor
87c0 6b 20 77 69 74 68 20 61 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 0a 75 6e 64 65 72 20 76 65 72 k.with.a.work.licensed.under.ver
87e0 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c sion.3.of.the.GNU.Affero.General
8800 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65 0a 63 6f .Public.License.into.a.single.co
8820 6d 62 69 6e 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 74 6f 20 63 6f 6e 76 65 79 20 74 68 65 20 72 mbined.work,.and.to.convey.the.r
8840 65 73 75 6c 74 69 6e 67 20 77 6f 72 6b 2e 20 20 54 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 esulting.work...The.terms.of.thi
8860 73 0a 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 61 70 70 6c 79 s.License.will.continue.to.apply
8880 20 74 6f 20 74 68 65 20 70 61 72 74 20 77 68 69 63 68 20 69 73 20 74 68 65 20 63 6f 76 65 72 65 .to.the.part.which.is.the.covere
88a0 64 20 77 6f 72 6b 2c 0a 62 75 74 20 74 68 65 20 73 70 65 63 69 61 6c 20 72 65 71 75 69 72 65 6d d.work,.but.the.special.requirem
88c0 65 6e 74 73 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 ents.of.the.GNU.Affero.General.P
88e0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 0a 73 65 63 74 69 6f 6e 20 31 33 2c 20 63 6f 6e 63 65 ublic.License,.section.13,.conce
8900 72 6e 69 6e 67 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 74 68 72 6f 75 67 68 20 61 20 6e 65 74 77 rning.interaction.through.a.netw
8920 6f 72 6b 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 6f 20 74 68 65 0a 63 6f 6d 62 69 6e 61 74 69 6f ork.will.apply.to.the.combinatio
8940 6e 20 61 73 20 73 75 63 68 2e 0a 0a 20 20 31 34 2e 20 52 65 76 69 73 65 64 20 56 65 72 73 69 6f n.as.such.....14..Revised.Versio
8960 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 54 68 65 20 46 72 65 65 20 ns.of.this.License.....The.Free.
8980 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 6d 61 79 20 70 75 62 6c 69 73 68 20 Software.Foundation.may.publish.
89a0 72 65 76 69 73 65 64 20 61 6e 64 2f 6f 72 20 6e 65 77 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 74 revised.and/or.new.versions.of.t
89c0 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 20 66 72 he.GNU.General.Public.License.fr
89e0 6f 6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 2e 20 20 53 75 63 68 20 6e 65 77 20 76 65 72 73 69 om.time.to.time...Such.new.versi
8a00 6f 6e 73 20 77 69 6c 6c 0a 62 65 20 73 69 6d 69 6c 61 72 20 69 6e 20 73 70 69 72 69 74 20 74 6f ons.will.be.similar.in.spirit.to
8a20 20 74 68 65 20 70 72 65 73 65 6e 74 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 6d 61 79 20 64 69 .the.present.version,.but.may.di
8a40 66 66 65 72 20 69 6e 20 64 65 74 61 69 6c 20 74 6f 0a 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 ffer.in.detail.to.address.new.pr
8a60 6f 62 6c 65 6d 73 20 6f 72 20 63 6f 6e 63 65 72 6e 73 2e 0a 0a 20 20 45 61 63 68 20 76 65 72 73 oblems.or.concerns.....Each.vers
8a80 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 61 20 64 69 73 74 69 6e 67 75 69 73 68 69 6e 67 20 76 65 ion.is.given.a.distinguishing.ve
8aa0 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 20 20 49 66 20 74 68 65 0a 50 72 6f 67 72 61 6d 20 73 70 rsion.number...If.the.Program.sp
8ac0 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 63 65 72 74 61 69 6e 20 6e 75 6d 62 65 72 65 64 20 ecifies.that.a.certain.numbered.
8ae0 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 version.of.the.GNU.General.Publi
8b00 63 20 4c 69 63 65 6e 73 65 20 22 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 22 c.License."or.any.later.version"
8b20 20 61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79 6f 75 20 68 61 76 65 20 74 68 65 0a 6f 70 74 .applies.to.it,.you.have.the.opt
8b40 69 6f 6e 20 6f 66 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 74 65 72 6d 73 20 61 6e 64 20 63 ion.of.following.the.terms.and.c
8b60 6f 6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 72 20 6f 66 20 74 68 61 74 20 6e 75 6d 62 65 72 65 onditions.either.of.that.numbere
8b80 64 0a 76 65 72 73 69 6f 6e 20 6f 72 20 6f 66 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f d.version.or.of.any.later.versio
8ba0 6e 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 n.published.by.the.Free.Software
8bc0 0a 46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 64 6f 65 .Foundation...If.the.Program.doe
8be0 73 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f s.not.specify.a.version.number.o
8c00 66 20 74 68 65 0a 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 f.the.GNU.General.Public.License
8c20 2c 20 79 6f 75 20 6d 61 79 20 63 68 6f 6f 73 65 20 61 6e 79 20 76 65 72 73 69 6f 6e 20 65 76 65 ,.you.may.choose.any.version.eve
8c40 72 20 70 75 62 6c 69 73 68 65 64 0a 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 r.published.by.the.Free.Software
8c60 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 73 .Foundation.....If.the.Program.s
8c80 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 70 72 6f 78 79 20 63 61 6e 20 64 65 63 69 64 65 pecifies.that.a.proxy.can.decide
8ca0 20 77 68 69 63 68 20 66 75 74 75 72 65 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 47 4e .which.future.versions.of.the.GN
8cc0 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 63 61 6e 20 62 65 20 U.General.Public.License.can.be.
8ce0 75 73 65 64 2c 20 74 68 61 74 20 70 72 6f 78 79 27 73 0a 70 75 62 6c 69 63 20 73 74 61 74 65 6d used,.that.proxy's.public.statem
8d00 65 6e 74 20 6f 66 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 61 20 76 65 72 73 69 6f 6e 20 70 ent.of.acceptance.of.a.version.p
8d20 65 72 6d 61 6e 65 6e 74 6c 79 20 61 75 74 68 6f 72 69 7a 65 73 20 79 6f 75 0a 74 6f 20 63 68 6f ermanently.authorizes.you.to.cho
8d40 6f 73 65 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 66 6f 72 20 74 68 65 20 50 72 6f 67 72 61 6d ose.that.version.for.the.Program
8d60 2e 0a 0a 20 20 4c 61 74 65 72 20 6c 69 63 65 6e 73 65 20 76 65 72 73 69 6f 6e 73 20 6d 61 79 20 .....Later.license.versions.may.
8d80 67 69 76 65 20 79 6f 75 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 72 20 64 69 66 66 65 72 65 6e 74 give.you.additional.or.different
8da0 0a 70 65 72 6d 69 73 73 69 6f 6e 73 2e 20 20 48 6f 77 65 76 65 72 2c 20 6e 6f 20 61 64 64 69 74 .permissions...However,.no.addit
8dc0 69 6f 6e 61 6c 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e ional.obligations.are.imposed.on
8de0 20 61 6e 79 0a 61 75 74 68 6f 72 20 6f 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 .any.author.or.copyright.holder.
8e00 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 20 74 6f 20 as.a.result.of.your.choosing.to.
8e20 66 6f 6c 6c 6f 77 20 61 0a 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 31 35 2e 20 44 follow.a.later.version.....15..D
8e40 69 73 63 6c 61 69 6d 65 72 20 6f 66 20 57 61 72 72 61 6e 74 79 2e 0a 0a 20 20 54 48 45 52 45 20 isclaimer.of.Warranty.....THERE.
8e60 49 53 20 4e 4f 20 57 41 52 52 41 4e 54 59 20 46 4f 52 20 54 48 45 20 50 52 4f 47 52 41 4d 2c 20 IS.NO.WARRANTY.FOR.THE.PROGRAM,.
8e80 54 4f 20 54 48 45 20 45 58 54 45 4e 54 20 50 45 52 4d 49 54 54 45 44 20 42 59 0a 41 50 50 4c 49 TO.THE.EXTENT.PERMITTED.BY.APPLI
8ea0 43 41 42 4c 45 20 4c 41 57 2e 20 20 45 58 43 45 50 54 20 57 48 45 4e 20 4f 54 48 45 52 57 49 53 CABLE.LAW...EXCEPT.WHEN.OTHERWIS
8ec0 45 20 53 54 41 54 45 44 20 49 4e 20 57 52 49 54 49 4e 47 20 54 48 45 20 43 4f 50 59 52 49 47 48 E.STATED.IN.WRITING.THE.COPYRIGH
8ee0 54 0a 48 4f 4c 44 45 52 53 20 41 4e 44 2f 4f 52 20 4f 54 48 45 52 20 50 41 52 54 49 45 53 20 50 T.HOLDERS.AND/OR.OTHER.PARTIES.P
8f00 52 4f 56 49 44 45 20 54 48 45 20 50 52 4f 47 52 41 4d 20 22 41 53 20 49 53 22 20 57 49 54 48 4f ROVIDE.THE.PROGRAM."AS.IS".WITHO
8f20 55 54 20 57 41 52 52 41 4e 54 59 0a 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 49 54 48 45 52 20 UT.WARRANTY.OF.ANY.KIND,.EITHER.
8f40 45 58 50 52 45 53 53 45 44 20 4f 52 20 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 2c EXPRESSED.OR.IMPLIED,.INCLUDING,
8f60 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 0a 54 48 45 20 49 4d 50 4c 49 45 44 .BUT.NOT.LIMITED.TO,.THE.IMPLIED
8f80 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 .WARRANTIES.OF.MERCHANTABILITY.A
8fa0 4e 44 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 0a 50 55 52 50 ND.FITNESS.FOR.A.PARTICULAR.PURP
8fc0 4f 53 45 2e 20 20 54 48 45 20 45 4e 54 49 52 45 20 52 49 53 4b 20 41 53 20 54 4f 20 54 48 45 20 OSE...THE.ENTIRE.RISK.AS.TO.THE.
8fe0 51 55 41 4c 49 54 59 20 41 4e 44 20 50 45 52 46 4f 52 4d 41 4e 43 45 20 4f 46 20 54 48 45 20 50 QUALITY.AND.PERFORMANCE.OF.THE.P
9000 52 4f 47 52 41 4d 0a 49 53 20 57 49 54 48 20 59 4f 55 2e 20 20 53 48 4f 55 4c 44 20 54 48 45 20 ROGRAM.IS.WITH.YOU...SHOULD.THE.
9020 50 52 4f 47 52 41 4d 20 50 52 4f 56 45 20 44 45 46 45 43 54 49 56 45 2c 20 59 4f 55 20 41 53 53 PROGRAM.PROVE.DEFECTIVE,.YOU.ASS
9040 55 4d 45 20 54 48 45 20 43 4f 53 54 20 4f 46 0a 41 4c 4c 20 4e 45 43 45 53 53 41 52 59 20 53 45 UME.THE.COST.OF.ALL.NECESSARY.SE
9060 52 56 49 43 49 4e 47 2c 20 52 45 50 41 49 52 20 4f 52 20 43 4f 52 52 45 43 54 49 4f 4e 2e 0a 0a RVICING,.REPAIR.OR.CORRECTION...
9080 20 20 31 36 2e 20 4c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 4c 69 61 62 69 6c 69 74 79 2e 0a 0a ..16..Limitation.of.Liability...
90a0 20 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 55 4e 4c 45 53 53 20 52 45 51 55 49 52 45 44 20 42 59 ..IN.NO.EVENT.UNLESS.REQUIRED.BY
90c0 20 41 50 50 4c 49 43 41 42 4c 45 20 4c 41 57 20 4f 52 20 41 47 52 45 45 44 20 54 4f 20 49 4e 20 .APPLICABLE.LAW.OR.AGREED.TO.IN.
90e0 57 52 49 54 49 4e 47 0a 57 49 4c 4c 20 41 4e 59 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 WRITING.WILL.ANY.COPYRIGHT.HOLDE
9100 52 2c 20 4f 52 20 41 4e 59 20 4f 54 48 45 52 20 50 41 52 54 59 20 57 48 4f 20 4d 4f 44 49 46 49 R,.OR.ANY.OTHER.PARTY.WHO.MODIFI
9120 45 53 20 41 4e 44 2f 4f 52 20 43 4f 4e 56 45 59 53 0a 54 48 45 20 50 52 4f 47 52 41 4d 20 41 53 ES.AND/OR.CONVEYS.THE.PROGRAM.AS
9140 20 50 45 52 4d 49 54 54 45 44 20 41 42 4f 56 45 2c 20 42 45 20 4c 49 41 42 4c 45 20 54 4f 20 59 .PERMITTED.ABOVE,.BE.LIABLE.TO.Y
9160 4f 55 20 46 4f 52 20 44 41 4d 41 47 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 20 41 4e 59 0a 47 45 OU.FOR.DAMAGES,.INCLUDING.ANY.GE
9180 4e 45 52 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 49 4e 43 49 44 45 4e 54 41 4c 20 4f 52 20 43 4f NERAL,.SPECIAL,.INCIDENTAL.OR.CO
91a0 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 41 52 49 53 49 4e 47 20 4f 55 54 20 NSEQUENTIAL.DAMAGES.ARISING.OUT.
91c0 4f 46 20 54 48 45 0a 55 53 45 20 4f 52 20 49 4e 41 42 49 4c 49 54 59 20 54 4f 20 55 53 45 20 54 OF.THE.USE.OR.INABILITY.TO.USE.T
91e0 48 45 20 50 52 4f 47 52 41 4d 20 28 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 HE.PROGRAM.(INCLUDING.BUT.NOT.LI
9200 4d 49 54 45 44 20 54 4f 20 4c 4f 53 53 20 4f 46 0a 44 41 54 41 20 4f 52 20 44 41 54 41 20 42 45 MITED.TO.LOSS.OF.DATA.OR.DATA.BE
9220 49 4e 47 20 52 45 4e 44 45 52 45 44 20 49 4e 41 43 43 55 52 41 54 45 20 4f 52 20 4c 4f 53 53 45 ING.RENDERED.INACCURATE.OR.LOSSE
9240 53 20 53 55 53 54 41 49 4e 45 44 20 42 59 20 59 4f 55 20 4f 52 20 54 48 49 52 44 0a 50 41 52 54 S.SUSTAINED.BY.YOU.OR.THIRD.PART
9260 49 45 53 20 4f 52 20 41 20 46 41 49 4c 55 52 45 20 4f 46 20 54 48 45 20 50 52 4f 47 52 41 4d 20 IES.OR.A.FAILURE.OF.THE.PROGRAM.
9280 54 4f 20 4f 50 45 52 41 54 45 20 57 49 54 48 20 41 4e 59 20 4f 54 48 45 52 20 50 52 4f 47 52 41 TO.OPERATE.WITH.ANY.OTHER.PROGRA
92a0 4d 53 29 2c 0a 45 56 45 4e 20 49 46 20 53 55 43 48 20 48 4f 4c 44 45 52 20 4f 52 20 4f 54 48 45 MS),.EVEN.IF.SUCH.HOLDER.OR.OTHE
92c0 52 20 50 41 52 54 59 20 48 41 53 20 42 45 45 4e 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 R.PARTY.HAS.BEEN.ADVISED.OF.THE.
92e0 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 0a 53 55 43 48 20 44 41 4d 41 47 45 53 2e 0a 0a 20 20 POSSIBILITY.OF.SUCH.DAMAGES.....
9300 31 37 2e 20 49 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 53 65 63 74 69 6f 6e 73 20 31 17..Interpretation.of.Sections.1
9320 35 20 61 6e 64 20 31 36 2e 0a 0a 20 20 49 66 20 74 68 65 20 64 69 73 63 6c 61 69 6d 65 72 20 6f 5.and.16.....If.the.disclaimer.o
9340 66 20 77 61 72 72 61 6e 74 79 20 61 6e 64 20 6c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 6c 69 61 f.warranty.and.limitation.of.lia
9360 62 69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 0a 61 62 6f 76 65 20 63 61 6e 6e 6f 74 20 62 65 20 bility.provided.above.cannot.be.
9380 67 69 76 65 6e 20 6c 6f 63 61 6c 20 6c 65 67 61 6c 20 65 66 66 65 63 74 20 61 63 63 6f 72 64 69 given.local.legal.effect.accordi
93a0 6e 67 20 74 6f 20 74 68 65 69 72 20 74 65 72 6d 73 2c 0a 72 65 76 69 65 77 69 6e 67 20 63 6f 75 ng.to.their.terms,.reviewing.cou
93c0 72 74 73 20 73 68 61 6c 6c 20 61 70 70 6c 79 20 6c 6f 63 61 6c 20 6c 61 77 20 74 68 61 74 20 6d rts.shall.apply.local.law.that.m
93e0 6f 73 74 20 63 6c 6f 73 65 6c 79 20 61 70 70 72 6f 78 69 6d 61 74 65 73 0a 61 6e 20 61 62 73 6f ost.closely.approximates.an.abso
9400 6c 75 74 65 20 77 61 69 76 65 72 20 6f 66 20 61 6c 6c 20 63 69 76 69 6c 20 6c 69 61 62 69 6c 69 lute.waiver.of.all.civil.liabili
9420 74 79 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 0a 50 72 6f 67 72 61 ty.in.connection.with.the.Progra
9440 6d 2c 20 75 6e 6c 65 73 73 20 61 20 77 61 72 72 61 6e 74 79 20 6f 72 20 61 73 73 75 6d 70 74 69 m,.unless.a.warranty.or.assumpti
9460 6f 6e 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 61 63 63 6f 6d 70 61 6e 69 65 73 20 61 0a 63 6f on.of.liability.accompanies.a.co
9480 70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 6e 20 72 65 74 75 72 6e 20 66 6f 72 20 py.of.the.Program.in.return.for.
94a0 61 20 66 65 65 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 a.fee........................END
94c0 20 4f 46 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 20 20 20 20 .OF.TERMS.AND.CONDITIONS........
94e0 20 20 20 20 20 20 48 6f 77 20 74 6f 20 41 70 70 6c 79 20 54 68 65 73 65 20 54 65 72 6d 73 20 74 ......How.to.Apply.These.Terms.t
9500 6f 20 59 6f 75 72 20 4e 65 77 20 50 72 6f 67 72 61 6d 73 0a 0a 20 20 49 66 20 79 6f 75 20 64 65 o.Your.New.Programs....If.you.de
9520 76 65 6c 6f 70 20 61 20 6e 65 77 20 70 72 6f 67 72 61 6d 2c 20 61 6e 64 20 79 6f 75 20 77 61 6e velop.a.new.program,.and.you.wan
9540 74 20 69 74 20 74 6f 20 62 65 20 6f 66 20 74 68 65 20 67 72 65 61 74 65 73 74 0a 70 6f 73 73 69 t.it.to.be.of.the.greatest.possi
9560 62 6c 65 20 75 73 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2c 20 74 68 65 20 62 65 73 74 20 ble.use.to.the.public,.the.best.
9580 77 61 79 20 74 6f 20 61 63 68 69 65 76 65 20 74 68 69 73 20 69 73 20 74 6f 20 6d 61 6b 65 20 69 way.to.achieve.this.is.to.make.i
95a0 74 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 68 20 65 76 65 72 79 6f 6e 65 20 63 t.free.software.which.everyone.c
95c0 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 20 63 68 61 6e 67 65 20 75 6e 64 65 72 an.redistribute.and.change.under
95e0 20 74 68 65 73 65 20 74 65 72 6d 73 2e 0a 0a 20 20 54 6f 20 64 6f 20 73 6f 2c 20 61 74 74 61 63 .these.terms.....To.do.so,.attac
9600 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6e 6f 74 69 63 65 73 20 74 6f 20 74 68 65 20 70 h.the.following.notices.to.the.p
9620 72 6f 67 72 61 6d 2e 20 20 49 74 20 69 73 20 73 61 66 65 73 74 0a 74 6f 20 61 74 74 61 63 68 20 rogram...It.is.safest.to.attach.
9640 74 68 65 6d 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 65 61 63 68 20 73 6f 75 72 63 65 them.to.the.start.of.each.source
9660 20 66 69 6c 65 20 74 6f 20 6d 6f 73 74 20 65 66 66 65 63 74 69 76 65 6c 79 0a 73 74 61 74 65 20 .file.to.most.effectively.state.
9680 74 68 65 20 65 78 63 6c 75 73 69 6f 6e 20 6f 66 20 77 61 72 72 61 6e 74 79 3b 20 61 6e 64 20 65 the.exclusion.of.warranty;.and.e
96a0 61 63 68 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 74 20 6c 65 61 73 74 0a 74 68 ach.file.should.have.at.least.th
96c0 65 20 22 63 6f 70 79 72 69 67 68 74 22 20 6c 69 6e 65 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 e."copyright".line.and.a.pointer
96e0 20 74 6f 20 77 68 65 72 65 20 74 68 65 20 66 75 6c 6c 20 6e 6f 74 69 63 65 20 69 73 20 66 6f 75 .to.where.the.full.notice.is.fou
9700 6e 64 2e 0a 0a 20 20 20 20 3c 6f 6e 65 20 6c 69 6e 65 20 74 6f 20 67 69 76 65 20 74 68 65 20 70 nd.......<one.line.to.give.the.p
9720 72 6f 67 72 61 6d 27 73 20 6e 61 6d 65 20 61 6e 64 20 61 20 62 72 69 65 66 20 69 64 65 61 20 6f rogram's.name.and.a.brief.idea.o
9740 66 20 77 68 61 74 20 69 74 20 64 6f 65 73 2e 3e 0a 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 f.what.it.does.>.....Copyright.(
9760 43 29 20 3c 79 65 61 72 3e 20 20 3c 6e 61 6d 65 20 6f 66 20 61 75 74 68 6f 72 3e 0a 0a 20 20 20 C).<year>..<name.of.author>.....
9780 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 .This.program.is.free.software:.
97a0 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 6f 72 20 6d you.can.redistribute.it.and/or.m
97c0 6f 64 69 66 79 0a 20 20 20 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 odify.....it.under.the.terms.of.
97e0 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 20 61 the.GNU.General.Public.License.a
9800 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 20 20 20 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 s.published.by.....the.Free.Soft
9820 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 65 72 73 69 6f 6e 20 ware.Foundation,.either.version.
9840 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 20 20 20 20 28 61 74 20 79 6f 75 3.of.the.License,.or.....(at.you
9860 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 6e 2e 0a 0a 20 20 r.option).any.later.version.....
9880 20 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 65 64 20 69 6e ..This.program.is.distributed.in
98a0 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 73 65 66 75 6c .the.hope.that.it.will.be.useful
98c0 2c 0a 20 20 20 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 ,.....but.WITHOUT.ANY.WARRANTY;.
98e0 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 72 61 6e 74 without.even.the.implied.warrant
9900 79 20 6f 66 0a 20 20 20 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e y.of.....MERCHANTABILITY.or.FITN
9920 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 20 20 53 ESS.FOR.A.PARTICULAR.PURPOSE...S
9940 65 65 20 74 68 65 0a 20 20 20 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 ee.the.....GNU.General.Public.Li
9960 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 20 20 20 20 59 6f 75 cense.for.more.details.......You
9980 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 20 .should.have.received.a.copy.of.
99a0 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 20 the.GNU.General.Public.License..
99c0 20 20 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.
99e0 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 not,.see.<https://www.gnu.org/li
9a00 63 65 6e 73 65 73 2f 3e 2e 0a 0a 41 6c 73 6f 20 61 64 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 censes/>...Also.add.information.
9a20 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6e 74 61 63 74 20 79 6f 75 20 62 79 20 65 6c 65 63 74 72 6f on.how.to.contact.you.by.electro
9a40 6e 69 63 20 61 6e 64 20 70 61 70 65 72 20 6d 61 69 6c 2e 0a 0a 20 20 49 66 20 74 68 65 20 70 72 nic.and.paper.mail.....If.the.pr
9a60 6f 67 72 61 6d 20 64 6f 65 73 20 74 65 72 6d 69 6e 61 6c 20 69 6e 74 65 72 61 63 74 69 6f 6e 2c ogram.does.terminal.interaction,
9a80 20 6d 61 6b 65 20 69 74 20 6f 75 74 70 75 74 20 61 20 73 68 6f 72 74 0a 6e 6f 74 69 63 65 20 6c .make.it.output.a.short.notice.l
9aa0 69 6b 65 20 74 68 69 73 20 77 68 65 6e 20 69 74 20 73 74 61 72 74 73 20 69 6e 20 61 6e 20 69 6e ike.this.when.it.starts.in.an.in
9ac0 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 3a 0a 0a 20 20 20 20 3c 70 72 6f 67 72 61 6d 3e 20 20 teractive.mode:......<program>..
9ae0 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 3c 79 65 61 72 3e 20 20 3c 6e 61 6d 65 20 6f 66 20 61 Copyright.(C).<year>..<name.of.a
9b00 75 74 68 6f 72 3e 0a 20 20 20 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 6f 6d 65 73 20 77 69 uthor>.....This.program.comes.wi
9b20 74 68 20 41 42 53 4f 4c 55 54 45 4c 59 20 4e 4f 20 57 41 52 52 41 4e 54 59 3b 20 66 6f 72 20 64 th.ABSOLUTELY.NO.WARRANTY;.for.d
9b40 65 74 61 69 6c 73 20 74 79 70 65 20 60 73 68 6f 77 20 77 27 2e 0a 20 20 20 20 54 68 69 73 20 69 etails.type.`show.w'......This.i
9b60 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 79 6f 75 20 61 72 65 20 77 65 6c s.free.software,.and.you.are.wel
9b80 63 6f 6d 65 20 74 6f 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 0a 20 20 20 20 75 6e 64 65 come.to.redistribute.it.....unde
9ba0 72 20 63 65 72 74 61 69 6e 20 63 6f 6e 64 69 74 69 6f 6e 73 3b 20 74 79 70 65 20 60 73 68 6f 77 r.certain.conditions;.type.`show
9bc0 20 63 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 54 68 65 20 68 79 70 6f 74 68 65 74 69 63 .c'.for.details...The.hypothetic
9be0 61 6c 20 63 6f 6d 6d 61 6e 64 73 20 60 73 68 6f 77 20 77 27 20 61 6e 64 20 60 73 68 6f 77 20 63 al.commands.`show.w'.and.`show.c
9c00 27 20 73 68 6f 75 6c 64 20 73 68 6f 77 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 0a 70 61 '.should.show.the.appropriate.pa
9c20 72 74 73 20 6f 66 20 74 68 65 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 rts.of.the.General.Public.Licens
9c40 65 2e 20 20 4f 66 20 63 6f 75 72 73 65 2c 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 27 73 20 63 6f e...Of.course,.your.program's.co
9c60 6d 6d 61 6e 64 73 0a 6d 69 67 68 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 3b 20 66 6f 72 20 61 mmands.might.be.different;.for.a
9c80 20 47 55 49 20 69 6e 74 65 72 66 61 63 65 2c 20 79 6f 75 20 77 6f 75 6c 64 20 75 73 65 20 61 6e .GUI.interface,.you.would.use.an
9ca0 20 22 61 62 6f 75 74 20 62 6f 78 22 2e 0a 0a 20 20 59 6f 75 20 73 68 6f 75 6c 64 20 61 6c 73 6f ."about.box".....You.should.also
9cc0 20 67 65 74 20 79 6f 75 72 20 65 6d 70 6c 6f 79 65 72 20 28 69 66 20 79 6f 75 20 77 6f 72 6b 20 .get.your.employer.(if.you.work.
9ce0 61 73 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 29 20 6f 72 20 73 63 68 6f 6f 6c 2c 0a 69 66 20 61 as.a.programmer).or.school,.if.a
9d00 6e 79 2c 20 74 6f 20 73 69 67 6e 20 61 20 22 63 6f 70 79 72 69 67 68 74 20 64 69 73 63 6c 61 69 ny,.to.sign.a."copyright.disclai
9d20 6d 65 72 22 20 66 6f 72 20 74 68 65 20 70 72 6f 67 72 61 6d 2c 20 69 66 20 6e 65 63 65 73 73 61 mer".for.the.program,.if.necessa
9d40 72 79 2e 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 69 73 ry..For.more.information.on.this
9d60 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 61 70 70 6c 79 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 ,.and.how.to.apply.and.follow.th
9d80 65 20 47 4e 55 20 47 50 4c 2c 20 73 65 65 0a 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e e.GNU.GPL,.see.<https://www.gnu.
9da0 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 org/licenses/>.....The.GNU.Gener
9dc0 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 64 6f 65 73 20 6e 6f 74 20 70 65 72 6d 69 al.Public.License.does.not.permi
9de0 74 20 69 6e 63 6f 72 70 6f 72 61 74 69 6e 67 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 0a 69 6e 74 t.incorporating.your.program.int
9e00 6f 20 70 72 6f 70 72 69 65 74 61 72 79 20 70 72 6f 67 72 61 6d 73 2e 20 20 49 66 20 79 6f 75 72 o.proprietary.programs...If.your
9e20 20 70 72 6f 67 72 61 6d 20 69 73 20 61 20 73 75 62 72 6f 75 74 69 6e 65 20 6c 69 62 72 61 72 79 .program.is.a.subroutine.library
9e40 2c 20 79 6f 75 0a 6d 61 79 20 63 6f 6e 73 69 64 65 72 20 69 74 20 6d 6f 72 65 20 75 73 65 66 75 ,.you.may.consider.it.more.usefu
9e60 6c 20 74 6f 20 70 65 72 6d 69 74 20 6c 69 6e 6b 69 6e 67 20 70 72 6f 70 72 69 65 74 61 72 79 20 l.to.permit.linking.proprietary.
9e80 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 77 69 74 68 0a 74 68 65 20 6c 69 62 72 61 72 79 2e 20 20 applications.with.the.library...
9ea0 49 66 20 74 68 69 73 20 69 73 20 77 68 61 74 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 6f 2c 20 If.this.is.what.you.want.to.do,.
9ec0 75 73 65 20 74 68 65 20 47 4e 55 20 4c 65 73 73 65 72 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 use.the.GNU.Lesser.General.Publi
9ee0 63 20 4c 69 63 65 6e 73 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 c.License.instead.of.this.Licens
9f00 65 2e 20 20 42 75 74 20 66 69 72 73 74 2c 20 70 6c 65 61 73 65 20 72 65 61 64 0a 3c 68 74 74 70 e...But.first,.please.read.<http
9f20 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 77 68 79 2d 6e 6f 74 s://www.gnu.org/licenses/why-not
9f40 2d 6c 67 70 6c 2e 68 74 6d 6c 3e 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -lgpl.html>.....................
9f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a000 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 75 74 69 6c 2e 65 6c 00 00 00 00 00 00 00 ztree-1.0.6/ztree-util.el.......
a020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a060 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
a080 30 30 30 36 37 33 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 37 34 35 00 20 30 00 00 00 0006733.00000000000.013745..0...
a0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a100 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...................
a120 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...................
a140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a200 3b 3b 3b 20 7a 74 72 65 65 2d 75 74 69 6c 2e 65 6c 20 2d 2d 2d 20 41 75 78 69 6c 69 61 72 79 20 ;;;.ztree-util.el.---.Auxiliary.
a220 75 74 69 6c 69 74 69 65 73 20 66 6f 72 20 74 68 65 20 7a 74 72 65 65 20 70 61 63 6b 61 67 65 20 utilities.for.the.ztree.package.
a240 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 -*-.lexical-binding:.t;.-*-..;;.
a260 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f Copyright.(C).2013-2021..Free.So
a280 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 ftware.Foundation,.Inc..;;.;;.Au
a2a0 74 68 6f 72 3a 20 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 thor:.Alexey.Veretennikov.<alexe
a2c0 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 y.veretennikov@gmail.com>.;;.;;.
a2e0 43 72 65 61 74 65 64 3a 20 32 30 31 33 2d 31 31 2d 31 31 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 Created:.2013-11-11.;;.;;.Keywor
a300 64 73 3a 20 66 69 6c 65 73 20 74 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f ds:.files.tools.;;.URL:.https://
a320 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 github.com/fourier/ztree.;;.Comp
a340 61 74 69 62 69 6c 69 74 79 3a 20 47 4e 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 atibility:.GNU.Emacs.24.x.;;.;;.
a360 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a This.file.is.part.of.GNU.Emacs..
a380 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 ;;.;;.GNU.Emacs.is.free.software
a3a0 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 20 61 6e 64 2f 6f 72 :.you.can.redistribute.it.and/or
a3c0 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 6f 66 .modify.;;.it.under.the.terms.of
a3e0 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 20 .the.GNU.General.Public.License.
a400 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 66 74 as.published.by.;;.the.Free.Soft
a420 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 65 72 73 69 6f 6e 20 ware.Foundation,.either.version.
a440 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 61 74 20 79 6f 75 72 3.of.the.License,.or.;;.(at.your
a460 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 6e 2e 0a 3b 3b 0a 3b .option).any.later.version..;;.;
a480 3b 20 47 4e 55 20 45 6d 61 63 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 ;.GNU.Emacs.is.distributed.in.th
a4a0 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b e.hope.that.it.will.be.useful,.;
a4c0 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ;.but.WITHOUT.ANY.WARRANTY;.with
a4e0 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
a500 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 .;;.MERCHANTABILITY.or.FITNESS.F
a520 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
a540 65 0a 3b 3b 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 20 e.;;.GNU.General.Public.License.
a560 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 for.more.details..;;.;;.You.shou
a580 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 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
a5a0 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 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
a5c0 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 ng.with.GNU.Emacs...If.not,.see.
a5e0 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a <http://www.gnu.org/licenses/>..
a600 3b 3b 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 0a ;;.;;;.Commentary:..;;;.Code:...
a620 28 64 65 66 6d 61 63 72 6f 20 64 65 66 2d 7a 74 72 65 65 2d 6c 6f 63 61 6c 2d 66 75 6e 20 28 6e (defmacro.def-ztree-local-fun.(n
a640 61 6d 65 20 64 6f 63 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 ame.doc)..."Create.a.buffer-loca
a660 6c 20 76 61 72 69 61 62 6c 65 20 4e 41 4d 45 2d 46 55 4e 20 61 6e 64 20 61 20 66 75 6e 63 74 69 l.variable.NAME-FUN.and.a.functi
a680 6f 6e 20 4e 41 4d 45 2e 0a 42 6f 74 68 20 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 61 20 66 75 on.NAME..Both.variables.and.a.fu
a6a0 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 68 61 76 65 20 61 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e nction.will.have.a.documentation
a6c0 20 44 4f 43 2e 0a 46 75 6e 63 74 69 6f 6e 20 77 69 6c 6c 20 46 55 4e 43 41 4c 4c 20 74 68 65 20 .DOC..Function.will.FUNCALL.the.
a6e0 76 61 72 69 61 62 6c 65 20 4e 41 4d 45 2d 46 55 4e 2e 0a 55 73 65 64 20 74 6f 20 63 72 65 61 74 variable.NAME-FUN..Used.to.creat
a700 65 20 63 61 6c 6c 62 61 63 6b 73 2e 0a 45 78 61 6d 70 6c 65 3a 0a 28 6d 61 63 72 6f 65 78 70 61 e.callbacks..Example:.(macroexpa
a720 6e 64 2d 31 20 27 28 64 65 66 2d 7a 74 72 65 65 2d 6c 6f 63 61 6c 2d 66 75 6e 20 61 64 64 20 5c nd-1.'(def-ztree-local-fun.add.\
a740 22 41 64 64 69 74 69 6f 6e 5c 22 29 29 0a 28 70 72 6f 67 6e 0a 20 20 28 64 65 66 76 61 72 2d 6c "Addition\")).(progn...(defvar-l
a760 6f 63 61 6c 20 61 64 64 2d 66 75 6e 20 6e 69 6c 20 5c 22 41 64 64 69 74 69 6f 6e 5c 22 29 0a 20 ocal.add-fun.nil.\"Addition\")..
a780 20 28 64 65 66 75 6e 20 61 64 64 20 28 26 72 65 73 74 20 61 72 67 73 29 20 5c 22 41 64 64 69 74 .(defun.add.(&rest.args).\"Addit
a7a0 69 6f 6e 5c 22 20 28 61 70 70 6c 79 20 61 64 64 2d 66 75 6e 20 61 72 67 73 29 29 29 22 0a 20 20 ion\".(apply.add-fun.args)))"...
a7c0 28 6c 65 74 20 28 28 76 61 72 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 28 73 79 6d 62 (let.((var.(intern.(concat.(symb
a7e0 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 20 22 2d 66 75 6e 22 29 29 29 29 0a 20 20 20 20 60 28 70 ol-name.name)."-fun")))).....`(p
a800 72 6f 67 6e 0a 20 20 20 20 20 20 20 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 2c 76 61 72 20 6e rogn........(defvar-local.,var.n
a820 69 6c 0a 20 20 20 20 20 20 20 20 20 2c 64 6f 63 29 0a 20 20 20 20 20 20 20 28 64 65 66 75 6e 20 il..........,doc)........(defun.
a840 2c 6e 61 6d 65 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 2c 64 6f 63 ,name.(&rest.args)..........,doc
a860 0a 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 2c 76 61 72 20 61 72 67 73 29 29 29 29 29 0a ..........(apply.,var.args))))).
a880 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 66 69 6e 64 20 28 77 68 65 72 65 20 77 68 69 63 68 29 .(defun.ztree-find.(where.which)
a8a0 0a 20 20 22 46 69 6e 64 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 6c 69 73 74 20 57 48 45 ..."Find.element.of.the.list.WHE
a8c0 52 45 20 6d 61 74 63 68 69 6e 67 20 70 72 65 64 69 63 61 74 65 20 57 48 49 43 48 2e 22 0a 20 20 RE.matching.predicate.WHICH."...
a8e0 28 63 61 74 63 68 20 27 66 6f 75 6e 64 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6c 74 20 77 (catch.'found.....(dolist.(elt.w
a900 68 65 72 65 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 61 6c 6c 20 77 68 69 63 68 here).......(when.(funcall.which
a920 20 65 6c 74 29 0a 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 65 6c 74 29 .elt).........(throw.'found.elt)
a940 29 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 66 69 6c 74 65 )).....nil))..(defun.ztree-filte
a960 72 20 28 63 6f 6e 64 70 20 6c 73 74 29 0a 20 20 22 46 69 6c 74 65 72 20 6f 75 74 20 65 6c 65 6d r.(condp.lst)..."Filter.out.elem
a980 65 6e 74 73 20 6e 6f 74 20 73 61 74 69 73 66 79 69 6e 67 20 70 72 65 64 69 63 61 74 65 20 43 4f ents.not.satisfying.predicate.CO
a9a0 4e 44 50 20 69 6e 20 74 68 65 20 6c 69 73 74 20 4c 53 54 2e 0a 54 61 6b 65 6e 20 66 72 6f 6d 20 NDP.in.the.list.LST..Taken.from.
a9c0 68 74 74 70 3a 2f 2f 77 77 77 2e 65 6d 61 63 73 77 69 6b 69 2e 6f 72 67 2f 65 6d 61 63 73 2f 45 http://www.emacswiki.org/emacs/E
a9e0 6c 69 73 70 43 6f 6f 6b 62 6f 6f 6b 23 74 6f 63 33 39 22 0a 20 20 28 64 65 6c 71 20 6e 69 6c 0a lispCookbook#toc39"...(delq.nil.
aa00 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 61 6e 64 ........(mapcar.(lambda.(x).(and
aa20 20 28 66 75 6e 63 61 6c 6c 20 63 6f 6e 64 70 20 78 29 20 78 29 29 20 6c 73 74 29 29 29 0a 0a 0a .(funcall.condp.x).x)).lst)))...
aa40 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 70 72 69 6e 74 61 62 6c 65 2d 73 74 72 69 6e 67 20 28 73 (defun.ztree-printable-string.(s
aa60 74 72 69 6e 67 29 0a 20 20 22 53 74 72 69 70 20 6e 65 77 6c 69 6e 65 20 63 68 61 72 61 63 74 65 tring)..."Strip.newline.characte
aa80 72 20 66 72 6f 6d 20 66 69 6c 65 20 6e 61 6d 65 73 2c 20 6c 69 6b 65 20 60 49 63 6f 6e 5c 6e 27 r.from.file.names,.like.`Icon\n'
aaa0 2e 0a 41 72 67 75 6d 65 6e 74 20 53 54 52 49 4e 47 20 73 74 72 69 6e 67 20 74 6f 20 70 72 6f 63 ..Argument.STRING.string.to.proc
aac0 65 73 73 2e 27 2e 22 0a 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 ess.'."...(replace-regexp-in-str
aae0 69 6e 67 20 22 5c 6e 22 20 22 22 20 73 74 72 69 6e 67 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 ing."\n"."".string))...(defun.zt
ab00 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 66 69 6c 65 29 0a 20 20 22 42 79 ree-file-short-name.(file)..."By
ab20 20 67 69 76 65 6e 20 46 49 4c 45 20 6e 61 6d 65 20 72 65 74 75 72 6e 20 62 61 73 65 20 66 69 6c .given.FILE.name.return.base.fil
ab40 65 2f 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 2e 0a 54 61 6b 65 6e 20 66 72 6f 6d 20 68 74 74 e/directory.name..Taken.from.htt
ab60 70 3a 2f 2f 6c 69 73 74 73 2e 67 6e 75 2e 6f 72 67 2f 61 72 63 68 69 76 65 2f 68 74 6d 6c 2f 65 p://lists.gnu.org/archive/html/e
ab80 6d 61 63 73 2d 64 65 76 65 6c 2f 32 30 31 31 2d 30 31 2f 6d 73 67 30 31 32 33 38 2e 68 74 6d 6c macs-devel/2011-01/msg01238.html
aba0 22 0a 20 20 28 6c 65 74 2a 20 28 28 64 69 72 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d "...(let*.((dir.(directory-file-
abc0 6e 61 6d 65 20 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 69 6d 70 6c 65 2d 64 69 72 name.file))..........(simple-dir
abe0 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 64 69 72 29 29 29 0a .(file-name-nondirectory.dir))).
ac00 20 20 20 20 3b 3b 20 63 68 65 63 6b 20 69 66 20 74 68 65 20 72 6f 6f 74 20 64 69 72 65 63 74 6f ....;;.check.if.the.root.directo
ac20 72 79 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 22 22 20 73 69 6d 70 6c 65 2d 64 69 ry.....(if.(string=."".simple-di
ac40 72 29 0a 20 20 20 20 20 20 20 20 64 69 72 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 70 72 69 6e r).........dir.......(ztree-prin
ac60 74 61 62 6c 65 2d 73 74 72 69 6e 67 20 73 69 6d 70 6c 65 2d 64 69 72 29 29 29 29 0a 0a 0a 28 64 table-string.simple-dir))))...(d
ac80 65 66 75 6e 20 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 28 76 61 6c 75 65 29 0a 20 20 22 52 efun.ztree-car-atom.(value)..."R
aca0 65 74 75 72 6e 20 56 41 4c 55 45 20 69 66 20 76 61 6c 75 65 20 69 73 20 61 6e 20 61 74 6f 6d 2c eturn.VALUE.if.value.is.an.atom,
acc0 20 6f 74 68 65 72 77 69 73 65 20 28 63 61 72 20 76 61 6c 75 65 29 20 6f 72 20 6e 69 6c 2e 0a 55 .otherwise.(car.value).or.nil..U
ace0 73 65 64 20 73 69 6e 63 65 20 60 63 61 72 2d 73 61 66 65 27 20 72 65 74 75 72 6e 73 20 6e 69 6c sed.since.`car-safe'.returns.nil
ad00 20 66 6f 72 20 61 74 6f 6d 73 22 0a 20 20 28 69 66 20 28 61 74 6f 6d 20 76 61 6c 75 65 29 20 76 .for.atoms"...(if.(atom.value).v
ad20 61 6c 75 65 20 28 63 61 72 20 76 61 6c 75 65 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 alue.(car.value)))...(defun.ztre
ad40 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 28 74 65 78 74 20 66 61 63 65 29 0a 20 e-insert-with-face.(text.face)..
ad60 20 22 49 6e 73 65 72 74 20 54 45 58 54 20 77 69 74 68 20 74 68 65 20 46 41 43 45 20 70 72 6f 76 ."Insert.TEXT.with.the.FACE.prov
ad80 69 64 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 0a ided."...(let.((start.(point))).
ada0 20 20 20 20 28 69 6e 73 65 72 74 20 74 65 78 74 29 0a 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d ....(insert.text).....(put-text-
adc0 70 72 6f 70 65 72 74 79 20 73 74 61 72 74 20 28 70 6f 69 6e 74 29 20 27 66 61 63 65 20 66 61 63 property.start.(point).'face.fac
ade0 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 75 6e 74 72 61 6d 70 69 66 79 2d 66 69 e)))..(defun.ztree-untrampify-fi
ae00 6c 65 6e 61 6d 65 20 28 66 69 6c 65 29 0a 20 20 22 52 65 74 75 72 6e 20 46 49 4c 45 20 61 73 20 lename.(file)..."Return.FILE.as.
ae20 74 68 65 20 6c 6f 63 61 6c 20 66 69 6c 65 20 6e 61 6d 65 2e 22 0a 20 20 28 6f 72 20 28 66 69 6c the.local.file.name."...(or.(fil
ae40 65 2d 72 65 6d 6f 74 65 2d 70 20 66 69 6c 65 20 27 6c 6f 63 61 6c 6e 61 6d 65 29 20 66 69 6c 65 e-remote-p.file.'localname).file
ae60 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 71 75 6f 74 69 66 79 2d 73 74 72 69 6e 67 20 ))..(defun.ztree-quotify-string.
ae80 28 73 74 72 29 0a 20 20 22 53 75 72 72 6f 75 6e 64 20 53 54 52 20 77 69 74 68 20 71 75 6f 74 65 (str)..."Surround.STR.with.quote
aea0 73 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 22 5c 22 22 20 73 74 72 20 22 5c 22 22 29 29 0a 0a 28 s."...(concat."\"".str."\""))..(
aec0 64 65 66 75 6e 20 7a 74 72 65 65 2d 73 61 6d 65 2d 68 6f 73 74 2d 70 20 28 66 69 6c 65 31 20 66 defun.ztree-same-host-p.(file1.f
aee0 69 6c 65 32 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 46 49 4c 45 31 20 61 6e 64 20 46 ile2)..."Return.t.if.FILE1.and.F
af00 49 4c 45 32 20 61 72 65 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 68 6f 73 74 2e 22 0a 20 20 28 6c ILE2.are.on.the.same.host."...(l
af20 65 74 20 28 28 66 69 6c 65 31 2d 72 65 6d 6f 74 65 20 28 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 et.((file1-remote.(file-remote-p
af40 20 66 69 6c 65 31 29 29 0a 20 20 20 20 20 20 20 20 28 66 69 6c 65 32 2d 72 65 6d 6f 74 65 20 28 .file1)).........(file2-remote.(
af60 66 69 6c 65 2d 72 65 6d 6f 74 65 2d 70 20 66 69 6c 65 32 29 29 29 0a 20 20 20 20 28 73 74 72 69 file-remote-p.file2))).....(stri
af80 6e 67 2d 65 71 75 61 6c 20 66 69 6c 65 31 2d 72 65 6d 6f 74 65 20 66 69 6c 65 32 2d 72 65 6d 6f ng-equal.file1-remote.file2-remo
afa0 74 65 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 7a 74 72 65 65 2d 75 74 69 6c 29 0a 0a 3b te)))...(provide.'ztree-util)..;
afc0 3b 3b 20 7a 74 72 65 65 2d 75 74 69 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 ;;.ztree-util.el.ends.here......
afe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b000 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 64 69 66 66 2e 65 6c 00 00 00 00 00 00 00 ztree-1.0.6/ztree-diff.el.......
b020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b060 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
b080 30 30 36 32 32 34 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 37 37 00 20 30 00 00 00 0062244.00000000000.013677..0...
b0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b100 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...................
b120 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...................
b140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b200 3b 3b 3b 20 7a 74 72 65 65 2d 64 69 66 66 2e 65 6c 20 2d 2d 2d 20 54 65 78 74 20 6d 6f 64 65 20 ;;;.ztree-diff.el.---.Text.mode.
b220 64 69 66 66 20 66 6f 72 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 73 20 2d 2a 2d 20 6c 65 78 diff.for.directory.trees.-*-.lex
b240 69 63 61 6c 2d 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 ical-binding:.t;.-*-..;;.Copyrig
b260 68 74 20 28 43 29 20 32 30 31 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 ht.(C).2013-2021..Free.Software.
b280 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 41 Foundation,.Inc..;;.;;.Author:.A
b2a0 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 65 74 lexey.Veretennikov.<alexey.veret
b2c0 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 65 64 ennikov@gmail.com>.;;.;;.Created
b2e0 3a 20 32 30 31 33 2d 31 31 2d 31 31 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 6c :.2013-11-11.;;.;;.Keywords:.fil
b300 65 73 20 74 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e es.tools.;;.URL:.https://github.
b320 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 6c 69 com/fourier/ztree.;;.Compatibili
b340 74 79 3a 20 47 4e 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 ty:.GNU.Emacs.24.x.;;.;;.This.fi
b360 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 47 le.is.part.of.GNU.Emacs..;;.;;.G
b380 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 NU.Emacs.is.free.software:.you.c
b3a0 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 an.redistribute.it.and/or.modify
b3c0 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e .;;.it.under.the.terms.of.the.GN
b3e0 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c U.General.Public.License.as.publ
b400 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f ished.by.;;.the.Free.Software.Fo
b420 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 undation,.either.version.3.of.th
b440 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e e.License,.or.;;.(at.your.option
b460 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 ).any.later.version..;;.;;.GNU.E
b480 6d 61 63 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 macs.is.distributed.in.the.hope.
b4a0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 that.it.will.be.useful,.;;.but.W
b4c0 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 ITHOUT.ANY.WARRANTY;.without.eve
b4e0 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 n.the.implied.warranty.of.;;.MER
b500 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 CHANTABILITY.or.FITNESS.FOR.A.PA
b520 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e RTICULAR.PURPOSE...See.the.;;.GN
b540 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 U.General.Public.License.for.mor
b560 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
b580 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
b5a0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
b5c0 20 47 4e 55 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f .GNU.Emacs...If.not,.see.<http:/
b5e0 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b 3b 20 /www.gnu.org/licenses/>..;;.;;;.
b600 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 65 76 61 6c 2d 77 68 65 Commentary:..;;;.Code:.(eval-whe
b620 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 72 65 n-compile.(require.'cl-lib)).(re
b640 71 75 69 72 65 20 27 7a 74 72 65 65 2d 76 69 65 77 29 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 quire.'ztree-view).(require.'ztr
b660 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 7a 74 72 65 65 2d ee-diff-model)..(defconst.ztree-
b680 64 69 66 66 2d 68 69 64 64 65 6e 2d 66 69 6c 65 73 2d 72 65 67 65 78 70 20 22 5e 5c 5c 2e 22 0a diff-hidden-files-regexp."^\\.".
b6a0 20 20 22 48 69 64 64 65 6e 20 66 69 6c 65 73 20 72 65 67 65 78 70 2e 0a 42 79 20 64 65 66 61 75 .."Hidden.files.regexp..By.defau
b6c0 6c 74 20 61 6c 6c 20 66 69 6c 65 73 74 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 6f 74 20 lt.all.filest.starting.with.dot.
b6e0 60 2e 27 2c 20 69 6e 63 6c 75 64 69 6e 67 20 2e 20 61 6e 64 20 2e 2e 22 29 0a 0a 28 64 65 66 66 `.',.including...and...")..(deff
b700 61 63 65 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 66 61 63 65 0a 20 20 27 28 ace.ztreep-diff-header-face...'(
b720 28 28 28 74 79 70 65 20 74 74 79 20 70 63 29 20 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 29 20 3a (((type.tty.pc).(class.color)).:
b740 66 6f 72 65 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 foreground."lightblue".:weight.b
b760 6f 6c 64 29 0a 20 20 20 20 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 20 28 3a old).....(((background.dark)).(:
b780 68 65 69 67 68 74 20 31 2e 32 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 62 6c 75 height.1.2.:foreground."lightblu
b7a0 65 22 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 29 0a 20 20 20 20 28 74 20 3a 68 65 69 67 68 74 e".:weight.bold)).....(t.:height
b7c0 20 31 2e 32 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 64 61 72 6b 62 6c 75 65 22 20 3a 77 65 69 .1.2.:foreground."darkblue".:wei
b7e0 67 68 74 20 62 6f 6c 64 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 ght.bold))..."*Face.used.for.the
b800 20 68 65 61 64 65 72 20 69 6e 20 5a 74 72 65 65 20 44 69 66 66 20 62 75 66 66 65 72 2e 22 0a 20 .header.in.Ztree.Diff.buffer."..
b820 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 2d 64 69 66 66 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 .:group.'Ztree-diff.:group.'font
b840 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 -lock-highlighting-faces).(defva
b860 72 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 66 61 63 65 20 27 7a 74 72 65 65 r.ztreep-diff-header-face.'ztree
b880 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 p-diff-header-face)..(defface.zt
b8a0 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 65 0a 20 20 27 28 reep-diff-header-small-face...'(
b8c0 28 28 28 74 79 70 65 20 74 74 79 20 70 63 29 20 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 29 20 3a (((type.tty.pc).(class.color)).:
b8e0 66 6f 72 65 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 foreground."lightblue".:weight.b
b900 6f 6c 64 29 0a 20 20 20 20 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 20 28 3a old).....(((background.dark)).(:
b920 66 6f 72 65 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 foreground."lightblue".:weight.b
b940 6f 6c 64 29 29 0a 20 20 20 20 28 74 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 20 3a 66 6f 72 65 67 old)).....(t.:weight.bold.:foreg
b960 72 6f 75 6e 64 20 22 64 61 72 6b 62 6c 75 65 22 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 round."darkblue"))..."*Face.used
b980 20 66 6f 72 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 20 5a 74 72 65 65 20 44 69 66 66 20 62 75 .for.the.header.in.Ztree.Diff.bu
b9a0 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 2d 64 69 66 66 20 3a 67 72 6f ffer."...:group.'Ztree-diff.:gro
b9c0 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 up.'font-lock-highlighting-faces
b9e0 29 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 ).(defvar.ztreep-diff-header-sma
ba00 6c 6c 2d 66 61 63 65 20 27 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 6c ll-face.'ztreep-diff-header-smal
ba20 6c 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f l-face)..(defface.ztreep-diff-mo
ba40 64 65 6c 2d 64 69 66 66 2d 66 61 63 65 0a 20 20 27 28 28 74 20 20 20 20 20 20 20 20 20 20 20 20 del-diff-face...'((t............
ba60 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 72 65 64 22 29 29 29 0a 20 20 22 .......(:foreground."red")))..."
ba80 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 20 66 69 6c 65 73 20 69 *Face.used.for.different.files.i
baa0 6e 20 5a 74 72 65 65 2d 64 69 66 66 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 2d 64 n.Ztree-diff."...:group.'Ztree-d
bac0 69 66 66 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 iff.:group.'font-lock-highlighti
bae0 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f ng-faces).(defvar.ztreep-diff-mo
bb00 64 65 6c 2d 64 69 66 66 2d 66 61 63 65 20 27 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c del-diff-face.'ztreep-diff-model
bb20 2d 64 69 66 66 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 64 69 66 -diff-face)..(defface.ztreep-dif
bb40 66 2d 6d 6f 64 65 6c 2d 61 64 64 2d 66 61 63 65 0a 20 20 27 28 28 74 20 20 20 20 20 20 20 20 20 f-model-add-face...'((t.........
bb60 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 62 6c 75 65 22 29 29 29 ..........(:foreground."blue")))
bb80 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 61 64 64 65 64 20 66 69 6c 65 73 20 69 ..."*Face.used.for.added.files.i
bba0 6e 20 5a 74 72 65 65 2d 64 69 66 66 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 2d 64 n.Ztree-diff."...:group.'Ztree-d
bbc0 69 66 66 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 iff.:group.'font-lock-highlighti
bbe0 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f ng-faces).(defvar.ztreep-diff-mo
bc00 64 65 6c 2d 61 64 64 2d 66 61 63 65 20 27 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d del-add-face.'ztreep-diff-model-
bc20 61 64 64 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 64 69 66 66 2d add-face)..(defface.ztreep-diff-
bc40 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 64 2d 66 61 63 65 0a 20 20 27 28 28 28 28 74 79 70 65 20 74 model-ignored-face...'((((type.t
bc60 74 79 20 70 63 29 20 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 ty.pc).(class.color).(min-colors
bc80 20 32 35 36 29 29 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 32 66 32 66 32 66 22 29 0a 20 20 .256)).:foreground."#2f2f2f")...
bca0 20 20 28 28 28 74 79 70 65 20 74 74 79 20 70 63 29 20 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 ..(((type.tty.pc).(class.color).
bcc0 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 29 29 20 20 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 77 (min-colors.8))...:foreground."w
bce0 68 69 74 65 22 29 0a 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hite").....(t...................
bd00 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 37 66 37 66 37 66 22 20 3a 73 74 72 69 6b 65 2d 74 (:foreground."#7f7f7f".:strike-t
bd20 68 72 6f 75 67 68 20 74 29 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 6e 6f hrough.t)))..."*Face.used.for.no
bd40 6e 2d 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 20 69 6e 20 5a 74 72 65 65 2d 64 69 66 66 2e 22 n-modified.files.in.Ztree-diff."
bd60 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 2d 64 69 66 66 20 3a 67 72 6f 75 70 20 27 66 6f ...:group.'Ztree-diff.:group.'fo
bd80 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 nt-lock-highlighting-faces).(def
bda0 76 61 72 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 64 2d 66 61 var.ztreep-diff-model-ignored-fa
bdc0 63 65 20 27 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 64 2d 66 61 ce.'ztreep-diff-model-ignored-fa
bde0 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d ce)..(defface.ztreep-diff-model-
be00 6e 6f 72 6d 61 6c 2d 66 61 63 65 0a 20 20 27 28 28 28 28 74 79 70 65 20 74 74 79 20 70 63 29 20 normal-face...'((((type.tty.pc).
be20 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 29 29 20 3a 66 (class.color).(min-colors.8)).:f
be40 6f 72 65 67 72 6f 75 6e 64 20 22 77 68 69 74 65 22 29 0a 20 20 20 20 28 74 20 20 20 20 20 20 20 oreground."white").....(t.......
be60 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 37 66 37 66 37 ............(:foreground."#7f7f7
be80 66 22 29 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 6e 6f 6e 2d 6d 6f 64 69 f")))..."*Face.used.for.non-modi
bea0 66 69 65 64 20 66 69 6c 65 73 20 69 6e 20 5a 74 72 65 65 2d 64 69 66 66 2e 22 0a 20 20 3a 67 72 fied.files.in.Ztree-diff."...:gr
bec0 6f 75 70 20 27 5a 74 72 65 65 2d 64 69 66 66 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 oup.'Ztree-diff.:group.'font-loc
bee0 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 72 20 7a 74 k-highlighting-faces).(defvar.zt
bf00 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 6e 6f 72 6d 61 6c 2d 66 61 63 65 20 27 7a 74 72 reep-diff-model-normal-face.'ztr
bf20 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 6e 6f 72 6d 61 6c 2d 66 61 63 65 29 0a 0a 0a 28 64 eep-diff-model-normal-face)...(d
bf40 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 2d 66 69 6c 74 65 72 2d 6c 69 efvar-local.ztree-diff-filter-li
bf60 73 74 20 28 6c 69 73 74 20 7a 74 72 65 65 2d 64 69 66 66 2d 68 69 64 64 65 6e 2d 66 69 6c 65 73 st.(list.ztree-diff-hidden-files
bf80 2d 72 65 67 65 78 70 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 72 65 67 65 78 70 20 66 69 6c 65 20 -regexp)..."List.of.regexp.file.
bfa0 6e 61 6d 65 73 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 2e 0a 42 79 20 64 65 66 61 75 6c 74 20 names.to.filter.out..By.default.
bfc0 70 61 74 68 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 6f 74 20 28 6c 69 6b 65 20 2e 67 paths.starting.with.dot.(like..g
bfe0 69 74 29 20 61 72 65 20 69 67 6e 6f 72 65 64 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c it).are.ignored")..(defvar-local
c000 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 20 6e 69 6c 0a 20 20 22 50 61 69 .ztree-diff-dirs-pair.nil..."Pai
c020 72 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 73 74 6f 72 65 64 2e 20 20 55 73 r.of.the.directories.stored...Us
c040 65 64 20 74 6f 20 70 65 72 66 6f 72 6d 20 74 68 65 20 66 75 6c 6c 20 72 65 73 63 61 6e 2e 22 29 ed.to.perform.the.full.rescan.")
c060 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 68 6f 77 2d ..(defvar-local.ztree-diff-show-
c080 65 71 75 61 6c 2d 66 69 6c 65 73 20 74 0a 20 20 22 53 68 6f 77 20 6f 72 20 6e 6f 74 20 65 71 75 equal-files.t..."Show.or.not.equ
c0a0 61 6c 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 20 6f 6e 20 62 6f 74 68 20 73 69 64 al.files/directories.on.both.sid
c0c0 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 2d es.")..(defvar-local.ztree-diff-
c0e0 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 20 6e 69 6c 0a 20 20 22 53 68 6f 77 20 show-filtered-files.nil..."Show.
c100 6f 72 20 6e 6f 74 20 66 69 6c 65 73 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 74 65 72 65 64 20 6c or.not.files.from.the.filtered.l
c120 69 73 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 ist.")..(defvar-local.ztree-diff
c140 2d 73 68 6f 77 2d 72 69 67 68 74 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 20 74 0a 20 20 22 53 68 -show-right-orphan-files.t..."Sh
c160 6f 77 20 6f 72 20 6e 6f 74 20 6f 72 70 68 61 6e 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 ow.or.not.orphan.files/directori
c180 65 73 20 6f 6e 20 72 69 67 68 74 20 73 69 64 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 es.on.right.side.")..(defvar-loc
c1a0 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 68 6f 77 2d 6c 65 66 74 2d 6f 72 70 68 61 6e 2d 66 al.ztree-diff-show-left-orphan-f
c1c0 69 6c 65 73 20 74 0a 20 20 22 53 68 6f 77 20 6f 72 20 6e 6f 74 20 6f 72 70 68 61 6e 20 66 69 6c iles.t..."Show.or.not.orphan.fil
c1e0 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 20 6f 6e 20 6c 65 66 74 20 73 69 64 65 2e 22 29 0a 0a es/directories.on.left.side.")..
c200 28 64 65 66 76 61 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 2d 70 72 65 76 69 6f 75 (defvar.ztree-diff-ediff-previou
c220 73 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 57 s-window-configurations.nil..."W
c240 69 6e 64 6f 77 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 70 72 69 6f 72 20 74 6f 20 63 61 indow.configurations.prior.to.ca
c260 6c 6c 69 6e 67 20 60 65 64 69 66 66 27 2e 0a 41 20 71 75 65 75 65 20 6f 66 20 77 69 6e 64 6f 77 lling.`ediff'..A.queue.of.window
c280 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 2c 20 61 6c 6c 6f 77 69 6e 67 0a 74 6f 20 72 65 73 .configurations,.allowing.to.res
c2a0 74 6f 72 65 20 6c 61 73 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 65 76 65 6e 20 69 66 20 tore.last.configuration.even.if.
c2c0 74 68 65 72 65 20 77 65 72 65 20 61 20 63 6f 75 70 6c 65 20 6f 66 20 65 64 69 66 66 20 73 65 73 there.were.a.couple.of.ediff.ses
c2e0 73 69 6f 6e 73 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d sions")..;;;###autoload.(define-
c300 6d 69 6e 6f 72 2d 6d 6f 64 65 20 7a 74 72 65 65 64 69 66 66 2d 6d 6f 64 65 0a 20 20 22 41 20 6d minor-mode.ztreediff-mode..."A.m
c320 69 6e 6f 72 20 6d 6f 64 65 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 74 68 65 20 64 69 66 inor.mode.for.displaying.the.dif
c340 66 65 72 65 6e 63 65 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 73 20 69 ference.of.the.directory.trees.i
c360 6e 20 74 65 78 74 20 6d 6f 64 65 2e 22 0a 20 20 3b 3b 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 n.text.mode."...;;.initial.value
c380 0a 20 20 6e 69 6c 0a 20 20 3b 3b 20 6d 6f 64 65 6c 69 6e 65 20 6e 61 6d 65 0a 20 20 22 20 44 69 ...nil...;;.modeline.name...".Di
c3a0 66 66 22 0a 20 20 3b 3b 20 54 68 65 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 6b 65 79 6d 61 70 0a 20 ff"...;;.The.minor.mode.keymap..
c3c0 20 60 28 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 43 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 66 .`(.....(,(kbd."C")...ztree-diff
c3e0 2d 63 6f 70 79 29 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 68 22 29 20 2e 20 7a 74 72 65 65 2d 64 -copy).....(,(kbd."h")...ztree-d
c400 69 66 66 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 2d 65 71 75 61 6c 2d 66 69 6c 65 73 29 0a 20 20 20 iff-toggle-show-equal-files)....
c420 20 28 2c 28 6b 62 64 20 22 48 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 66 2d 74 6f 67 67 6c 65 .(,(kbd."H")...ztree-diff-toggle
c440 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 29 0a 20 20 20 20 28 2c 28 6b 62 64 -show-filtered-files).....(,(kbd
c460 20 22 44 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 6c 65 74 65 2d 66 69 6c 65 29 0a ."D")...ztree-diff-delete-file).
c480 20 20 20 20 28 2c 28 6b 62 64 20 22 76 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 66 2d 76 69 65 ....(,(kbd."v")...ztree-diff-vie
c4a0 77 2d 66 69 6c 65 29 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 64 22 29 20 2e 20 7a 74 72 65 65 2d w-file).....(,(kbd."d")...ztree-
c4c0 64 69 66 66 2d 73 69 6d 70 6c 65 2d 64 69 66 66 2d 66 69 6c 65 73 29 0a 20 20 20 20 28 2c 28 6b diff-simple-diff-files).....(,(k
c4e0 62 64 20 22 72 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 66 2d 70 61 72 74 69 61 6c 2d 72 65 73 bd."r")...ztree-diff-partial-res
c500 63 61 6e 29 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 52 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 66 can).....(,(kbd."R")...ztree-dif
c520 66 2d 66 75 6c 6c 2d 72 65 73 63 61 6e 29 0a 20 20 20 20 28 5b 66 35 5d 20 2e 20 7a 74 72 65 65 f-full-rescan).....([f5]...ztree
c540 2d 64 69 66 66 2d 66 75 6c 6c 2d 72 65 73 63 61 6e 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 -diff-full-rescan)))...(defun.zt
c560 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 66 61 63 65 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 ree-diff-node-face.(node)..."Ret
c580 75 72 6e 20 74 68 65 20 66 61 63 65 20 66 6f 72 20 74 68 65 20 4e 4f 44 45 20 64 65 70 65 6e 64 urn.the.face.for.the.NODE.depend
c5a0 69 6e 67 20 6f 6e 20 64 69 66 66 20 73 74 61 74 75 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 69 ing.on.diff.status."...(let.((di
c5c0 66 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f ff.(ztree-diff-node-different.no
c5e0 64 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 64 69 66 66 20 27 69 67 6e 6f 72 de))).....(cond.((eq.diff.'ignor
c600 65 29 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 64 2d 66 61 63 e).ztreep-diff-model-ignored-fac
c620 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 64 69 66 66 20 27 64 69 66 66 29 20 7a 74 e)...........((eq.diff.'diff).zt
c640 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 64 69 66 66 2d 66 61 63 65 29 0a 20 20 20 20 20 reep-diff-model-diff-face)......
c660 20 20 20 20 20 28 28 65 71 20 64 69 66 66 20 27 6e 65 77 29 20 20 7a 74 72 65 65 70 2d 64 69 66 .....((eq.diff.'new)..ztreep-dif
c680 66 2d 6d 6f 64 65 6c 2d 61 64 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 f-model-add-face)...........((eq
c6a0 20 64 69 66 66 20 27 73 61 6d 65 29 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 6e .diff.'same).ztreep-diff-model-n
c6c0 6f 72 6d 61 6c 2d 66 61 63 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 ormal-face))))..(defun.ztree-dif
c6e0 66 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 68 65 61 64 65 72 20 28 29 0a 20 20 22 49 6e 73 f-insert-buffer-header.()..."Ins
c700 65 72 74 20 74 68 65 20 68 65 61 64 65 72 20 74 6f 20 74 68 65 20 7a 74 72 65 65 20 62 75 66 66 ert.the.header.to.the.ztree.buff
c720 65 72 2e 22 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 er."...(ztree-insert-with-face."
c740 44 69 66 66 65 72 65 6e 63 65 73 20 74 72 65 65 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 Differences.tree".ztreep-diff-he
c760 61 64 65 72 2d 66 61 63 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 28 77 68 ader-face)...(insert."\n")...(wh
c780 65 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 0a 20 20 20 20 28 7a 74 72 en.ztree-diff-dirs-pair.....(ztr
c7a0 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 28 63 6f 6e 63 61 74 20 22 4c 65 66 ee-insert-with-face.(concat."Lef
c7c0 74 3a 20 20 22 20 28 63 61 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 29 t:..".(car.ztree-diff-dirs-pair)
c7e0 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 7a 74 ).............................zt
c800 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 65 29 0a 20 20 20 reep-diff-header-small-face)....
c820 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 .(insert."\n").....(ztree-insert
c840 2d 77 69 74 68 2d 66 61 63 65 20 28 63 6f 6e 63 61 74 20 22 52 69 67 68 74 3a 20 22 20 28 63 64 -with-face.(concat."Right:.".(cd
c860 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 29 29 0a 20 20 20 20 20 20 20 r.ztree-diff-dirs-pair))........
c880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 70 2d 64 69 66 66 .....................ztreep-diff
c8a0 2d 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 65 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 -header-small-face).....(insert.
c8c0 22 5c 6e 22 29 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 "\n"))...(ztree-insert-with-face
c8e0 20 22 4c 65 67 65 6e 64 3a 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d ."Legend:".ztreep-diff-header-sm
c900 61 6c 6c 2d 66 61 63 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 28 7a 74 72 all-face)...(insert."\n")...(ztr
c920 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 20 4e 6f 72 6d 61 6c 20 66 69 6c ee-insert-with-face.".Normal.fil
c940 65 20 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 6e 6f 72 6d 61 6c 2d 66 61 63 e.".ztreep-diff-model-normal-fac
c960 65 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 2d 20 e)...(ztree-insert-with-face."-.
c980 73 61 6d 65 20 6f 6e 20 62 6f 74 68 20 73 69 64 65 73 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d same.on.both.sides".ztreep-diff-
c9a0 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e header-small-face)...(insert."\n
c9c0 22 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 20 4f ")...(ztree-insert-with-face.".O
c9e0 72 70 68 61 6e 20 66 69 6c 65 20 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 61 rphan.file.".ztreep-diff-model-a
ca00 64 64 2d 66 61 63 65 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 dd-face)...(ztree-insert-with-fa
ca20 63 65 20 22 2d 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 6f 6e 20 6f 74 68 65 72 20 73 69 ce."-.does.not.exist.on.other.si
ca40 64 65 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 de".ztreep-diff-header-small-fac
ca60 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 e)...(insert."\n")...(ztree-inse
ca80 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 20 4d 69 73 6d 61 74 63 68 20 66 69 6c 65 20 22 20 7a rt-with-face.".Mismatch.file.".z
caa0 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 64 69 66 66 2d 66 61 63 65 29 0a 20 20 28 7a treep-diff-model-diff-face)...(z
cac0 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 2d 20 64 69 66 66 65 72 65 tree-insert-with-face."-.differe
cae0 6e 74 20 66 72 6f 6d 20 6f 74 68 65 72 20 73 69 64 65 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d nt.from.other.side".ztreep-diff-
cb00 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e header-small-face)...(insert."\n
cb20 20 22 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 49 .")...(ztree-insert-with-face."I
cb40 67 6e 6f 72 65 64 20 66 69 6c 65 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 gnored.file".ztreep-diff-model-i
cb60 67 6e 6f 72 65 64 2d 66 61 63 65 29 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 77 69 74 gnored-face)...(ztree-insert-wit
cb80 68 2d 66 61 63 65 20 22 20 2d 20 69 67 6e 6f 72 65 64 20 66 72 6f 6d 20 63 6f 6d 70 61 72 69 73 h-face.".-.ignored.from.comparis
cba0 6f 6e 22 20 7a 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 73 6d 61 6c 6c 2d 66 61 63 on".ztreep-diff-header-small-fac
cbc0 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 0a 20 20 28 7a 74 72 65 65 2d 69 6e 73 e)...(insert."\n")....(ztree-ins
cbe0 65 72 74 2d 77 69 74 68 2d 66 61 63 65 20 22 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 22 20 7a ert-with-face."==============".z
cc00 74 72 65 65 70 2d 64 69 66 66 2d 68 65 61 64 65 72 2d 66 61 63 65 29 0a 20 20 28 69 6e 73 65 72 treep-diff-header-face)...(inser
cc20 74 20 22 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 66 75 6c 6c t."\n"))..(defun.ztree-diff-full
cc40 2d 72 65 73 63 61 6e 20 28 29 0a 20 20 22 46 6f 72 63 65 20 66 75 6c 6c 20 72 65 73 63 61 6e 20 -rescan.()..."Force.full.rescan.
cc60 6f 66 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 73 2e 22 0a 20 20 28 69 6e 74 65 of.the.directory.trees."...(inte
cc80 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 7a 74 72 65 65 2d 64 69 66 66 ractive)...(when.(and.ztree-diff
cca0 2d 64 69 72 73 2d 70 61 69 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 65 73 2d 6f 72 2d -dirs-pair..............(yes-or-
ccc0 6e 6f 2d 70 20 28 66 6f 72 6d 61 74 20 22 46 6f 72 63 65 20 66 75 6c 6c 20 72 65 73 63 61 6e 3f no-p.(format."Force.full.rescan?
cce0 22 29 29 29 0a 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 20 28 63 61 72 20 7a 74 72 65 65 2d "))).....(ztree-diff.(car.ztree-
cd00 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 29 20 28 63 64 72 20 7a 74 72 65 65 2d 64 69 66 66 2d diff-dirs-pair).(cdr.ztree-diff-
cd20 64 69 72 73 2d 70 61 69 72 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 dirs-pair))))....(defun.ztree-di
cd40 66 66 2d 65 78 69 73 74 69 6e 67 2d 63 6f 6d 6d 6f 6e 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 ff-existing-common.(node)..."Ret
cd60 75 72 6e 20 74 68 65 20 4e 4f 44 45 20 69 66 20 62 6f 74 68 20 6c 65 66 74 20 61 6e 64 20 72 69 urn.the.NODE.if.both.left.and.ri
cd80 67 68 74 20 73 69 64 65 73 20 65 78 69 73 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 66 74 20 ght.sides.exist."...(let.((left.
cda0 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 (ztree-diff-node-left-path.node)
cdc0 29 0a 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 ).........(right.(ztree-diff-nod
cde0 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e e-right-path.node))).....(if.(an
ce00 64 20 6c 65 66 74 20 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d d.left.right..............(file-
ce20 65 78 69 73 74 73 2d 70 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c exists-p.left)..............(fil
ce40 65 2d 65 78 69 73 74 73 2d 70 20 72 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 6e 6f 64 65 0a e-exists-p.right)).........node.
ce60 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d ......nil)))..(defun.ztree-diff-
ce80 65 78 69 73 74 69 6e 67 2d 63 6f 6d 6d 6f 6e 2d 70 61 72 65 6e 74 20 28 6e 6f 64 65 29 0a 20 20 existing-common-parent.(node)...
cea0 22 52 65 74 75 72 6e 20 74 68 65 20 66 69 72 73 74 20 6e 6f 64 65 20 69 6e 20 75 70 20 69 6e 20 "Return.the.first.node.in.up.in.
cec0 68 69 65 72 61 72 63 68 79 20 6f 66 20 74 68 65 20 4e 4f 44 45 20 77 68 69 63 68 20 68 61 73 20 hierarchy.of.the.NODE.which.has.
cee0 62 6f 74 68 20 73 69 64 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d 6f 6e 20 28 7a 74 both.sides."...(let.((common.(zt
cf00 72 65 65 2d 64 69 66 66 2d 65 78 69 73 74 69 6e 67 2d 63 6f 6d 6d 6f 6e 20 6e 6f 64 65 29 29 29 ree-diff-existing-common.node)))
cf20 0a 20 20 20 20 28 69 66 20 63 6f 6d 6d 6f 6e 0a 20 20 20 20 20 20 20 20 63 6f 6d 6d 6f 6e 0a 20 .....(if.common.........common..
cf40 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 65 78 69 73 74 69 6e 67 2d 63 6f 6d 6d 6f 6e .....(ztree-diff-existing-common
cf60 2d 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 -parent.(ztree-diff-node-parent.
cf80 6e 6f 64 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 6f 2d node)))))..(defun.ztree-diff-do-
cfa0 70 61 72 74 69 61 6c 2d 72 65 73 63 61 6e 20 28 6e 6f 64 65 29 0a 20 20 22 50 61 72 74 6c 79 20 partial-rescan.(node)..."Partly.
cfc0 72 65 73 63 61 6e 20 74 68 65 20 4e 4f 44 45 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6d 6d rescan.the.NODE."...(let*.((comm
cfe0 6f 6e 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 65 78 69 73 74 69 6e 67 2d 63 6f 6d 6d 6f 6e 2d 70 on.(ztree-diff-existing-common-p
d000 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 7a arent.node))..........(parent.(z
d020 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 63 6f 6d 6d 6f 6e 29 29 29 0a tree-diff-node-parent.common))).
d040 20 20 20 20 28 69 66 20 28 6e 6f 74 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 ....(if.(not.parent).........(wh
d060 65 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 69 72 0a 20 20 20 20 20 20 20 20 en.ztree-diff-dirs-pair.........
d080 20 20 28 7a 74 72 65 65 2d 64 69 66 66 20 28 63 61 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 ..(ztree-diff.(car.ztree-diff-di
d0a0 72 73 2d 70 61 69 72 29 20 28 63 64 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 rs-pair).(cdr.ztree-diff-dirs-pa
d0c0 69 72 29 29 29 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 70 61 ir))).......(ztree-diff-model-pa
d0e0 72 74 69 61 6c 2d 72 65 73 63 61 6e 20 63 6f 6d 6d 6f 6e 29 0a 20 20 20 20 20 20 28 7a 74 72 65 rtial-rescan.common).......(ztre
d100 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 e-refresh-buffer.(line-number-at
d120 2d 70 6f 73 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 70 61 -pos)))))...(defun.ztree-diff-pa
d140 72 74 69 61 6c 2d 72 65 73 63 61 6e 20 28 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 70 61 72 74 69 rtial-rescan.()..."Perform.parti
d160 61 6c 20 72 65 73 63 61 6e 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 2e 22 0a al.rescan.on.the.current.node.".
d180 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 6f 75 6e 64 20 28 ..(interactive)...(let.((found.(
d1a0 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 ztree-find-node-at-point))).....
d1c0 28 77 68 65 6e 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 64 6f (when.found.......(ztree-diff-do
d1e0 2d 70 61 72 74 69 61 6c 2d 72 65 73 63 61 6e 20 28 63 61 72 20 66 6f 75 6e 64 29 29 29 29 29 0a -partial-rescan.(car.found))))).
d200 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 69 6d 70 6c 65 2d 64 69 66 66 20 ..(defun.ztree-diff-simple-diff.
d220 28 6e 6f 64 65 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 73 69 6d 70 6c 65 20 64 69 66 66 20 62 (node)..."Create.a.simple.diff.b
d240 75 66 66 65 72 20 66 6f 72 20 66 69 6c 65 73 20 66 72 6f 6d 20 6c 65 66 74 20 61 6e 64 20 72 69 uffer.for.files.from.left.and.ri
d260 67 68 74 20 70 61 6e 65 6c 73 2e 0a 41 72 67 75 6d 65 6e 74 20 4e 4f 44 45 20 6e 6f 64 65 20 63 ght.panels..Argument.NODE.node.c
d280 6f 6e 74 61 69 6e 69 6e 67 20 70 61 74 68 73 20 74 6f 20 66 69 6c 65 73 20 74 6f 20 63 61 6c 6c ontaining.paths.to.files.to.call
d2a0 20 61 20 64 69 66 66 20 6f 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 2d 6c 65 66 74 .a.diff.on."...(let*.((node-left
d2c0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 .(ztree-diff-node-left-path.node
d2e0 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 72 69 67 68 74 20 28 7a 74 72 65 65 2d 64 ))..........(node-right.(ztree-d
d300 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 iff-node-right-path.node))).....
d320 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 6c 65 66 74 0a (when.(and............node-left.
d340 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 ...........node-right...........
d360 20 28 6e 6f 74 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 6e 6f 64 65 2d 6c 65 66 .(not.(file-directory-p.node-lef
d380 74 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 73 68 6f 77 20 74 68 65 20 64 69 66 66 20 77 69 6e 64 t))).......;;.show.the.diff.wind
d3a0 6f 77 20 6f 6e 20 74 68 65 20 62 6f 74 74 6f 6d 0a 20 20 20 20 20 20 3b 3b 20 74 6f 20 6e 6f 74 ow.on.the.bottom.......;;.to.not
d3c0 20 74 6f 20 63 72 75 73 68 20 74 72 65 65 20 61 70 70 65 61 72 61 6e 63 65 0a 20 20 20 20 20 20 .to.crush.tree.appearance.......
d3e0 28 6c 65 74 20 28 28 73 70 6c 69 74 2d 77 69 64 74 68 2d 74 68 72 65 73 68 6f 6c 64 20 6e 69 6c (let.((split-width-threshold.nil
d400 29 29 0a 20 20 20 20 20 20 20 20 28 64 69 66 66 20 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65 2d )).........(diff.node-left.node-
d420 72 69 67 68 74 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 right)))))...(defun.ztree-diff-s
d440 69 6d 70 6c 65 2d 64 69 66 66 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 imple-diff-files.()..."Create.a.
d460 73 69 6d 70 6c 65 20 64 69 66 66 20 62 75 66 66 65 72 20 66 6f 72 20 66 69 6c 65 73 20 66 72 6f simple.diff.buffer.for.files.fro
d480 6d 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 70 61 6e 65 6c 73 2e 22 0a 20 20 28 69 6e 74 m.left.and.right.panels."...(int
d4a0 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 6f 75 6e 64 20 28 7a 74 72 65 65 2d eractive)...(let.((found.(ztree-
d4c0 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 find-node-at-point))).....(when.
d4e0 66 6f 75 6e 64 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 63 61 72 20 66 6f 75 found.......(let.((node.(car.fou
d500 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 73 69 6d 70 6c 65 nd))).........(ztree-diff-simple
d520 2d 64 69 66 66 20 6e 6f 64 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 -diff.node)))))..(defun.ztree-di
d540 66 66 2d 65 64 69 66 66 2d 62 65 66 6f 72 65 2d 73 65 74 75 70 2d 68 6f 6f 6b 2d 66 75 6e 63 74 ff-ediff-before-setup-hook-funct
d560 69 6f 6e 20 28 29 0a 20 20 22 48 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 60 65 64 69 ion.()..."Hook.function.for.`edi
d580 66 66 2d 62 65 66 6f 72 65 2d 73 65 74 75 70 2d 68 6f 6f 6b 27 2e 0a 0a 53 65 65 20 74 68 65 20 ff-before-setup-hook'...See.the.
d5a0 49 6e 66 6f 20 6e 6f 64 65 20 60 28 65 64 69 66 66 29 20 68 6f 6f 6b 73 27 2e 0a 0a 54 68 69 73 Info.node.`(ediff).hooks'...This
d5c0 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 73 20 69 74 73 65 6c 66 2e 22 0a .hook.function.removes.itself.".
d5e0 20 20 28 70 75 73 68 20 28 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 ..(push.(current-window-configur
d600 61 74 69 6f 6e 29 20 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 2d 70 72 65 76 69 6f 75 73 ation).ztree-diff-ediff-previous
d620 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 29 0a 20 20 28 7a 74 72 65 65 -window-configurations)...(ztree
d640 2d 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 28 72 65 6d 6f 76 -save-current-position)...(remov
d660 65 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 62 65 66 6f 72 65 2d 73 65 74 75 70 2d 68 6f 6f 6b 20 e-hook.'ediff-before-setup-hook.
d680 23 27 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 2d 62 65 66 6f 72 65 2d 73 65 74 75 70 2d #'ztree-diff-ediff-before-setup-
d6a0 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 hook-function))..(defun.ztree-di
d6c0 66 66 2d 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e 20 28 29 0a 20 ff-ediff-quit-hook-function.()..
d6e0 20 22 48 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 60 65 64 69 66 66 2d 71 75 69 74 2d ."Hook.function.for.`ediff-quit-
d700 68 6f 6f 6b 27 2e 0a 0a 53 65 65 20 74 68 65 20 49 6e 66 6f 20 6e 6f 64 65 20 60 28 65 64 69 66 hook'...See.the.Info.node.`(edif
d720 66 29 20 68 6f 6f 6b 73 27 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 20 72 f).hooks'...This.hook.function.r
d740 65 6d 6f 76 65 73 20 69 74 73 65 6c 66 2e 22 0a 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 63 6f emoves.itself."...(set-window-co
d760 6e 66 69 67 75 72 61 74 69 6f 6e 20 28 70 6f 70 20 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 nfiguration.(pop.ztree-diff-edif
d780 66 2d 70 72 65 76 69 6f 75 73 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 f-previous-window-configurations
d7a0 29 29 0a 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 0a 20 20 28 72 ))...(ztree-refresh-buffer)...(r
d7c0 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 23 27 7a 74 emove-hook.'ediff-quit-hook.#'zt
d7e0 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f ree-diff-ediff-quit-hook-functio
d800 6e 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 20 28 66 69 n))..(defun.ztree-diff-ediff.(fi
d820 6c 65 2d 61 20 66 69 6c 65 2d 62 20 26 6f 70 74 69 6f 6e 61 6c 20 73 74 61 72 74 75 70 2d 68 6f le-a.file-b.&optional.startup-ho
d840 6f 6b 73 29 0a 20 20 22 45 64 69 66 66 20 74 68 61 74 20 63 6c 65 61 6e 73 20 75 70 20 61 66 74 oks)..."Ediff.that.cleans.up.aft
d860 65 72 20 69 74 73 65 6c 66 2e 0a 0a 45 64 69 66 66 2d 72 65 6c 61 74 65 64 20 62 75 66 66 65 72 er.itself...Ediff-related.buffer
d880 73 20 61 72 65 20 6b 69 6c 6c 65 64 20 61 6e 64 20 74 68 65 20 70 72 65 2d 45 64 69 66 66 20 77 s.are.killed.and.the.pre-Ediff.w
d8a0 69 6e 64 6f 77 0a 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 73 20 72 65 73 74 6f 72 65 64 2e indow.configuration.is.restored.
d8c0 22 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 62 65 66 6f 72 65 2d 73 65 74 75 "...(add-hook.'ediff-before-setu
d8e0 70 2d 68 6f 6f 6b 20 23 27 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 66 66 2d 62 65 66 6f 72 65 p-hook.#'ztree-diff-ediff-before
d900 2d 73 65 74 75 70 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 28 61 64 64 2d 68 6f 6f -setup-hook-function)...(add-hoo
d920 6b 20 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 23 27 7a 74 72 65 65 2d 64 69 66 66 2d k.'ediff-quit-hook.#'ztree-diff-
d940 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 2d 66 75 6e 63 74 69 6f 6e 20 74 29 0a 20 20 28 65 ediff-quit-hook-function.t)...(e
d960 64 69 66 66 20 66 69 6c 65 2d 61 20 66 69 6c 65 2d 62 20 73 74 61 72 74 75 70 2d 68 6f 6f 6b 73 diff.file-a.file-b.startup-hooks
d980 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 61 63 74 69 6f ))..(defun.ztree-diff-node-actio
d9a0 6e 20 28 6e 6f 64 65 20 68 61 72 64 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 61 63 74 69 6f 6e 20 n.(node.hard)..."Perform.action.
d9c0 6f 6e 20 4e 4f 44 45 3a 0a 31 20 69 66 20 62 6f 74 68 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 on.NODE:.1.if.both.left.and.righ
d9e0 74 20 73 69 64 65 73 20 70 72 65 73 65 6e 74 3a 0a 20 20 20 31 2e 31 20 69 66 20 74 68 65 79 20 t.sides.present:....1.1.if.they.
da00 61 72 65 20 64 69 66 66 65 72 65 6e 64 0a 20 20 20 20 20 20 31 2e 31 2e 31 20 69 66 20 48 41 52 are.differend.......1.1.1.if.HAR
da20 44 20 65 64 69 66 66 0a 20 20 20 20 20 20 31 2e 31 2e 32 20 73 69 6d 70 6c 65 20 64 69 66 66 20 D.ediff.......1.1.2.simple.diff.
da40 6f 74 68 65 72 77 69 73 74 65 0a 20 20 20 31 2e 32 20 69 66 20 74 68 65 79 20 61 72 65 20 74 68 otherwiste....1.2.if.they.are.th
da60 65 20 73 61 6d 65 20 2d 20 76 69 65 77 20 6c 65 66 74 0a 32 20 69 66 20 6c 65 66 74 20 6f 72 20 e.same.-.view.left.2.if.left.or.
da80 72 69 67 68 74 20 70 72 65 73 65 6e 74 20 2d 20 76 69 65 77 20 6c 65 66 74 20 6f 72 20 72 69 67 right.present.-.view.left.or.rig
daa0 74 68 22 0a 20 20 3b 3b 20 73 61 76 65 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 69 th"...;;.save.current.position.i
dac0 6e 20 63 61 73 65 20 69 66 20 74 68 65 20 77 69 6e 64 6f 77 0a 20 20 3b 3b 20 63 6f 6e 66 69 67 n.case.if.the.window...;;.config
dae0 75 72 61 74 69 6f 6e 20 77 69 6c 6c 20 63 68 61 6e 67 65 0a 20 20 28 7a 74 72 65 65 2d 73 61 76 uration.will.change...(ztree-sav
db00 65 2d 63 75 72 72 65 6e 74 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 28 6c 65 74 20 28 28 6c 65 66 e-current-position)...(let.((lef
db20 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 t.(ztree-diff-node-left-path.nod
db40 65 29 29 0a 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e e)).........(right.(ztree-diff-n
db60 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b ode-right-path.node)).........;;
db80 20 46 49 58 4d 45 3a 20 54 68 65 20 47 4e 55 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 69 73 20 74 6f .FIXME:.The.GNU.convention.is.to
dba0 20 6f 6e 6c 79 20 75 73 65 20 22 70 61 74 68 22 20 66 6f 72 20 6c 69 73 74 73 20 6f 66 0a 20 20 .only.use."path".for.lists.of...
dbc0 20 20 20 20 20 20 3b 3b 20 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 20 69 6e 20 6c 6f 61 64 2d ......;;.directories.as.in.load-
dbe0 70 61 74 68 2e 0a 20 20 20 20 20 20 20 20 28 6f 70 65 6e 2d 66 20 23 27 28 6c 61 6d 62 64 61 20 path..........(open-f.#'(lambda.
dc00 28 70 61 74 68 29 20 28 69 66 20 68 61 72 64 20 28 66 69 6e 64 2d 66 69 6c 65 20 70 61 74 68 29 (path).(if.hard.(find-file.path)
dc20 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 ................................
dc40 20 20 20 28 6c 65 74 20 28 28 73 70 6c 69 74 2d 77 69 64 74 68 2d 74 68 72 65 73 68 6f 6c 64 20 ...(let.((split-width-threshold.
dc60 6e 69 6c 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 nil))...........................
dc80 20 20 20 20 20 20 20 20 20 20 28 76 69 65 77 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f ..........(view-file-other-windo
dca0 77 20 70 61 74 68 29 29 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 6c 65 66 w.path)))))).....(cond.((and.lef
dcc0 74 20 72 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 6c 20 28 7a 74 t.right)............(if.(eql.(zt
dce0 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 73 ree-diff-node-different.node).'s
dd00 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6f 70 65 ame)................(funcall.ope
dd20 6e 2d 66 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 68 61 72 64 0a n-f.left)..............(if.hard.
dd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 65 64 69 .................(ztree-diff-edi
dd60 66 66 20 6c 65 66 74 20 72 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a ff.left.right)................(z
dd80 74 72 65 65 2d 64 69 66 66 2d 73 69 6d 70 6c 65 2d 64 69 66 66 20 6e 6f 64 65 29 29 29 29 0a 20 tree-diff-simple-diff.node))))..
dda0 20 20 20 20 20 20 20 20 20 28 6c 65 66 74 20 28 66 75 6e 63 61 6c 6c 20 6f 70 65 6e 2d 66 20 6c .........(left.(funcall.open-f.l
ddc0 65 66 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 66 75 6e 63 61 6c 6c 20 eft))...........(right.(funcall.
dde0 6f 70 65 6e 2d 66 20 72 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 6e 69 6c 29 open-f.right))...........(t.nil)
de00 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 70 79 2d 66 69 )))....(defun.ztree-diff-copy-fi
de20 6c 65 20 28 6e 6f 64 65 20 73 6f 75 72 63 65 2d 70 61 74 68 20 64 65 73 74 69 6e 61 74 69 6f 6e le.(node.source-path.destination
de40 2d 70 61 74 68 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 29 0a 20 20 22 55 70 64 61 74 65 20 74 -path.copy-to-right)..."Update.t
de60 68 65 20 4e 4f 44 45 20 73 74 61 74 75 73 20 61 6e 64 20 63 6f 70 79 20 74 68 65 20 66 69 6c 65 he.NODE.status.and.copy.the.file
de80 2e 0a 46 69 6c 65 20 63 6f 70 69 65 64 20 66 72 6f 6d 20 53 4f 55 52 43 45 2d 50 41 54 48 20 74 ..File.copied.from.SOURCE-PATH.t
dea0 6f 20 44 45 53 54 49 4e 41 54 49 4f 4e 2d 50 41 54 48 2e 0a 43 4f 50 59 2d 54 4f 2d 52 49 47 48 o.DESTINATION-PATH..COPY-TO-RIGH
dec0 54 20 73 70 65 63 69 66 69 65 73 20 77 68 69 63 68 20 73 69 64 65 20 6f 66 20 74 68 65 20 4e 4f T.specifies.which.side.of.the.NO
dee0 44 45 20 74 6f 20 75 70 64 61 74 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 61 72 67 65 74 2d 70 DE.to.update."...(let.((target-p
df00 61 74 68 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ath.(concat.....................
df20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 20 64 65 73 74 69 6e ..(file-name-as-directory.destin
df40 61 74 69 6f 6e 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ation-path).....................
df60 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 ..(file-name-nondirectory.......
df80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 .................(directory-file
dfa0 2d 6e 61 6d 65 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 29 29 29 0a 20 20 20 20 28 6c 65 74 20 -name.source-path))))).....(let.
dfc0 28 28 65 72 72 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 6f 72 2d 74 72 61 70 ((err.(condition-case.error-trap
dfe0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 ....................(progn......
e000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 6f 6e 27 74 20 61 73 6b 20 66 6f 72 ................;;.don't.ask.for
e020 20 6f 76 65 72 77 72 69 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .overwrite......................
e040 3b 3b 20 6b 65 65 70 20 74 69 6d 65 20 73 74 61 6d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;;.keep.time.stamp..............
e060 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 66 69 6c 65 20 73 6f 75 72 63 65 2d 70 61 74 68 20 74 ........(copy-file.source-path.t
e080 61 72 67 65 74 2d 70 61 74 68 20 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 arget-path.t.t).................
e0a0 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f .....nil)..................(erro
e0c0 72 20 65 72 72 6f 72 2d 74 72 61 70 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 65 72 72 6f 72 20 r.error-trap)))).......;;.error.
e0e0 6d 65 73 73 61 67 65 20 69 66 20 66 61 69 6c 65 64 0a 20 20 20 20 20 20 28 69 66 20 65 72 72 20 message.if.failed.......(if.err.
e100 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 45 72 72 6f 72 3a 20 22 20 28 6e 74 68 20 (message.(concat."Error:.".(nth.
e120 32 20 65 72 72 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 3a 0a 20 2.err))).........;;.otherwise:..
e140 20 20 20 20 20 20 20 3b 3b 20 61 73 73 75 6d 69 6e 67 20 61 6c 6c 20 77 65 6e 74 20 6f 6b 20 77 .......;;.assuming.all.went.ok.w
e160 68 65 6e 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 6e 6f 64 65 73 20 61 72 65 20 74 68 65 hen.left.and.right.nodes.are.the
e180 20 73 61 6d 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 73 65 74 20 62 6f 74 68 20 61 73 20 6e 6f 74 .same.........;;.set.both.as.not
e1a0 20 64 69 66 66 65 72 65 6e 74 20 69 66 20 74 68 65 79 20 77 65 72 65 20 6e 6f 74 20 69 67 6e 6f .different.if.they.were.not.igno
e1c0 72 65 64 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 28 7a 74 72 65 65 2d 64 red.........(unless.(eq.(ztree-d
e1e0 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 69 67 6e 6f 72 65 iff-node-different.node).'ignore
e200 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f )...........(setf.(ztree-diff-no
e220 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 73 61 6d 65 29 29 0a 20 20 20 20 20 de-different.node).'same))......
e240 20 20 20 3b 3b 20 75 70 64 61 74 65 20 6c 65 66 74 2f 72 69 67 68 74 20 70 61 74 68 73 0a 20 20 ...;;.update.left/right.paths...
e260 20 20 20 20 20 20 28 69 66 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 ......(if.copy-to-right.........
e280 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 ....(setf.(ztree-diff-node-right
e2a0 2d 70 61 74 68 20 6e 6f 64 65 29 20 74 61 72 67 65 74 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 -path.node).target-path)........
e2c0 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 ...(setf.(ztree-diff-node-left-p
e2e0 61 74 68 20 6e 6f 64 65 29 20 74 61 72 67 65 74 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 ath.node).target-path)).........
e300 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 64 61 74 65 2d 61 6c 6c 2d 70 61 72 65 (ztree-diff-node-update-all-pare
e320 6e 74 73 2d 64 69 66 66 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 72 65 nts-diff.node).........(ztree-re
e340 66 72 65 73 68 2d 62 75 66 66 65 72 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 fresh-buffer.(line-number-at-pos
e360 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 70 79 2d ))))))...(defun.ztree-diff-copy-
e380 64 69 72 20 28 6e 6f 64 65 20 73 6f 75 72 63 65 2d 70 61 74 68 20 64 65 73 74 69 6e 61 74 69 6f dir.(node.source-path.destinatio
e3a0 6e 2d 70 61 74 68 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 29 0a 20 20 22 55 70 64 61 74 65 20 n-path.copy-to-right)..."Update.
e3c0 74 68 65 20 4e 4f 44 45 20 73 74 61 74 75 73 20 61 6e 64 20 63 6f 70 79 20 74 68 65 20 64 69 72 the.NODE.status.and.copy.the.dir
e3e0 65 63 74 6f 72 79 2e 0a 44 69 72 65 63 74 6f 72 79 20 63 6f 70 69 65 64 20 66 72 6f 6d 20 53 4f ectory..Directory.copied.from.SO
e400 55 52 43 45 2d 50 41 54 48 20 74 6f 20 44 45 53 54 49 4e 41 54 49 4f 4e 2d 50 41 54 48 2e 0a 43 URCE-PATH.to.DESTINATION-PATH..C
e420 4f 50 59 2d 54 4f 2d 52 49 47 48 54 20 73 70 65 63 69 66 69 65 73 20 77 68 69 63 68 20 73 69 64 OPY-TO-RIGHT.specifies.which.sid
e440 65 20 6f 66 20 74 68 65 20 4e 4f 44 45 20 74 6f 20 75 70 64 61 74 65 2e 22 0a 20 20 28 6c 65 74 e.of.the.NODE.to.update."...(let
e460 2a 20 28 28 73 72 63 2d 70 61 74 68 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 *.((src-path.(file-name-as-direc
e480 74 6f 72 79 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 61 72 tory.source-path))..........(tar
e4a0 67 65 74 2d 70 61 74 68 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 61 73 2d 64 69 72 65 63 74 6f 72 79 get-path.(file-name-as-directory
e4c0 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 61 .destination-path))..........(ta
e4e0 72 67 65 74 2d 66 75 6c 6c 2d 70 61 74 68 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 rget-full-path.(concat..........
e500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 72 67 65 74 2d 70 61 74 68 0a 20 ...................target-path..
e520 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 69 6c 65 ...........................(file
e540 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -name-nondirectory..............
e560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 2d ................(directory-file-
e580 6e 61 6d 65 20 73 6f 75 72 63 65 2d 70 61 74 68 29 29 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 name.source-path))))).....(let.(
e5a0 28 65 72 72 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 6f 72 2d 74 72 61 70 0a (err.(condition-case.error-trap.
e5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 ...................(progn.......
e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6b 65 65 70 20 74 69 6d 65 20 73 74 61 6d ...............;;.keep.time.stam
e600 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 73 6b 20 66 6f p......................;;.ask.fo
e620 72 20 6f 76 65 72 77 72 69 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r.overwrite.....................
e640 20 28 63 6f 70 79 2d 64 69 72 65 63 74 6f 72 79 20 73 72 63 2d 70 61 74 68 20 74 61 72 67 65 74 .(copy-directory.src-path.target
e660 2d 70 61 74 68 20 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -path.t.t)......................
e680 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 65 72 72 nil)..................(error.err
e6a0 6f 72 2d 74 72 61 70 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 65 72 72 6f 72 20 6d 65 73 73 61 or-trap)))).......;;.error.messa
e6c0 67 65 20 69 66 20 66 61 69 6c 65 64 0a 20 20 20 20 20 20 28 69 66 20 65 72 72 0a 20 20 20 20 20 ge.if.failed.......(if.err......
e6e0 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 .....(progn.............(message
e700 20 28 63 6f 6e 63 61 74 20 22 45 72 72 6f 72 3a 20 22 20 28 6e 74 68 20 31 20 65 72 72 29 29 29 .(concat."Error:.".(nth.1.err)))
e720 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 64 6f 20 72 65 73 63 61 6e 20 6f 66 .............;;.and.do.rescan.of
e740 20 74 68 65 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 .the.node.............(ztree-dif
e760 66 2d 64 6f 2d 70 61 72 74 69 61 6c 2d 72 65 73 63 61 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 f-do-partial-rescan.node))......
e780 20 20 20 3b 3b 20 69 66 20 65 76 65 72 79 74 68 69 6e 67 20 69 73 20 6f 6b 2c 20 75 70 64 61 74 ...;;.if.everything.is.ok,.updat
e7a0 65 20 73 74 61 74 75 73 65 73 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 74 61 72 67 e.statuses.........(message.targ
e7c0 65 74 2d 66 75 6c 6c 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 63 6f 70 79 2d 74 et-full-path).........(if.copy-t
e7e0 6f 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 o-right.............(setf.(ztree
e800 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 20 74 61 72 67 -diff-node-right-path.node).targ
e820 65 74 2d 66 75 6c 6c 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a et-full-path)...........(setf.(z
e840 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 20 74 tree-diff-node-left-path.node).t
e860 61 72 67 65 74 2d 66 75 6c 6c 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 arget-full-path)).........;;.TOD
e880 4f 3a 20 64 6f 20 6e 6f 74 20 72 65 73 63 61 6e 20 74 68 65 20 6e 6f 64 65 2e 20 55 73 65 20 73 O:.do.not.rescan.the.node..Use.s
e8a0 6f 6d 65 20 6c 6f 67 69 63 20 6c 69 6b 65 20 69 6e 20 64 65 6c 65 74 65 0a 20 20 20 20 20 20 20 ome.logic.like.in.delete........
e8c0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 75 70 64 61 74 65 2d 6e 6f 64 65 20 6e .(ztree-diff-model-update-node.n
e8e0 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 ode).........(ztree-diff-node-up
e900 64 61 74 65 2d 61 6c 6c 2d 70 61 72 65 6e 74 73 2d 64 69 66 66 20 6e 6f 64 65 29 0a 20 20 20 20 date-all-parents-diff.node).....
e920 20 20 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 28 6c 69 6e 65 2d ....(ztree-refresh-buffer.(line-
e940 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 number-at-pos))))))...(defun.ztr
e960 65 65 2d 64 69 66 66 2d 63 6f 70 79 20 28 29 0a 20 20 22 43 6f 70 79 20 74 68 65 20 66 69 6c 65 ee-diff-copy.()..."Copy.the.file
e980 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 73 6f 72 20 74 6f 20 6f 74 68 65 72 20 73 69 64 65 2e .under.the.cursor.to.other.side.
e9a0 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 6f 75 6e 64 "...(interactive)...(let.((found
e9c0 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 .(ztree-find-node-at-point)))...
e9e0 20 20 28 77 68 65 6e 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 ..(when.found.......(let*.((node
ea00 20 28 63 61 72 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 69 64 65 .(car.found))..............(side
ea20 20 28 63 64 72 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 .(cdr.found))..............(node
ea40 2d 73 69 64 65 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 69 64 65 20 6e 6f 64 65 -side.(ztree-diff-node-side.node
ea60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 20 74 ))..............(copy-to-right.t
ea80 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 6f 70 79 20 66 72 6f 6d 20 6c 65 66 74 20 74 6f 20 )...........;.copy.from.left.to.
eaa0 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 6c 65 66 74 20 28 7a right..............(node-left.(z
eac0 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 0a tree-diff-node-left-path.node)).
eae0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 72 69 67 68 74 20 28 7a 74 72 65 65 2d .............(node-right.(ztree-
eb00 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 0a 20 20 20 20 diff-node-right-path.node)).....
eb20 20 20 20 20 20 20 20 20 20 28 73 6f 75 72 63 65 2d 70 61 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 .........(source-path.nil)......
eb40 20 20 20 20 20 20 20 20 28 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 68 20 6e 69 6c 29 0a 20 ........(destination-path.nil)..
eb60 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d ............(parent.(ztree-diff-
eb80 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 node-parent.node))).........(whe
eba0 6e 20 70 61 72 65 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 6f 20 6e 6f 74 n.parent................;.do.not
ebc0 20 63 6f 70 79 20 74 68 65 20 72 6f 6f 74 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b .copy.the.root.node...........;;
ebe0 20 64 65 74 65 72 6d 69 6e 65 20 61 20 73 69 64 65 20 74 6f 20 63 6f 70 79 20 66 72 6f 6d 2f 74 .determine.a.side.to.copy.from/t
ec00 6f 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6c 67 6f 72 69 74 68 6d 3a 0a 20 20 20 20 20 20 o...........;;.algorithm:.......
ec20 20 20 20 20 3b 3b 20 31 29 20 69 66 20 62 6f 74 68 20 73 69 64 65 20 61 72 65 20 70 72 65 73 65 ....;;.1).if.both.side.are.prese
ec40 6e 74 2c 20 75 73 65 20 74 68 65 20 73 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 nt,.use.the.side...........;;...
ec60 20 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 70 79 2d 74 .variable...........(setq.copy-t
ec80 6f 2d 72 69 67 68 74 20 28 69 66 20 28 65 71 20 6e 6f 64 65 2d 73 69 64 65 20 27 62 6f 74 68 29 o-right.(if.(eq.node-side.'both)
eca0 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 ................................
ecc0 20 20 20 28 65 71 20 73 69 64 65 20 27 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(eq.side.'left)..............
ece0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 32 29 20 69 66 20 6f 6e 65 20 ...................;;.2).if.one.
ed00 6f 66 20 73 69 64 65 73 20 69 73 20 61 62 73 65 6e 74 2c 20 63 6f 70 79 20 66 72 6f 6d 0a 20 20 of.sides.is.absent,.copy.from...
ed20 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 3b 3b ..............................;;
ed40 20 20 20 20 74 68 65 20 73 69 64 65 20 77 68 65 72 65 20 74 68 65 20 66 69 6c 65 20 69 73 20 70 ....the.side.where.the.file.is.p
ed60 72 65 73 65 6e 74 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 resent..........................
ed80 20 20 20 20 20 20 20 28 65 71 20 6e 6f 64 65 2d 73 69 64 65 20 27 6c 65 66 74 29 29 29 0a 20 20 .......(eq.node-side.'left)))...
eda0 20 20 20 20 20 20 20 20 3b 3b 20 33 29 20 69 6e 20 62 6f 74 68 20 63 61 73 65 73 20 64 65 74 65 ........;;.3).in.both.cases.dete
edc0 72 6d 69 6e 65 20 69 66 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 rmine.if.the.destination........
ede0 20 20 20 3b 3b 20 20 20 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 69 6e 20 70 6c 61 63 65 0a 20 ...;;....directory.is.in.place..
ee00 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 6f 75 72 63 65 2d 70 61 74 68 20 28 69 66 20 63 .........(setq.source-path.(if.c
ee20 6f 70 79 2d 74 6f 2d 72 69 67 68 74 20 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65 2d 72 69 67 68 opy-to-right.node-left.node-righ
ee40 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 t).................destination-p
ee60 61 74 68 20 28 69 66 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 ath.(if.copy-to-right...........
ee80 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 7a 74 72 65 ...........................(ztre
eea0 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 70 61 72 65 6e 74 29 0a 20 e-diff-node-right-path.parent)..
eec0 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 ................................
eee0 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 70 61 72 ..(ztree-diff-node-left-path.par
ef00 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 73 6f 75 72 ent)))...........(when.(and.sour
ef20 63 65 2d 70 61 74 68 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 68 0a 20 20 20 20 20 20 20 ce-path.destination-path........
ef40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 20 28 66 6f 72 6d ..............(yes-or-no-p.(form
ef60 61 74 20 22 43 6f 70 79 20 5b 25 73 5d 25 73 20 74 6f 20 5b 25 73 5d 25 73 2f 20 3f 22 0a 20 20 at."Copy.[%s]%s.to.[%s]%s/.?"...
ef80 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 ................................
efa0 20 20 20 20 20 20 20 20 28 69 66 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 20 22 4c 45 46 54 22 ........(if.copy-to-right."LEFT"
efc0 20 22 52 49 47 48 54 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."RIGHT").......................
efe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d ....................(ztree-diff-
f000 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 node-short-name.node)...........
f020 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 ................................
f040 28 69 66 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 20 22 52 49 47 48 54 22 20 22 4c 45 46 54 22 (if.copy-to-right."RIGHT"."LEFT"
f060 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 )...............................
f080 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 68 29 29 29 0a ............destination-path))).
f0a0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d ............(if.(file-directory-
f0c0 70 20 73 6f 75 72 63 65 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 p.source-path).................(
f0e0 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 70 79 2d 64 69 72 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 ztree-diff-copy-dir.node........
f100 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 73 6f ..............................so
f120 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urce-path.......................
f140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 68 0a ...............destination-path.
f160 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 ................................
f180 20 20 20 20 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....copy-to-right).............
f1a0 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 70 79 2d 66 69 6c 65 20 6e 6f 64 65 0a 20 20 20 ..(ztree-diff-copy-file.node....
f1c0 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 ................................
f1e0 20 73 6f 75 72 63 65 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .source-path....................
f200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 74 69 6e 61 74 69 6f 6e 2d 70 61 74 .................destination-pat
f220 68 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 h...............................
f240 20 20 20 20 20 20 63 6f 70 79 2d 74 6f 2d 72 69 67 68 74 29 29 29 29 29 29 29 29 0a 0a 28 64 65 ......copy-to-right))))))))..(de
f260 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 76 69 65 77 2d 66 69 6c 65 20 28 29 0a 20 20 22 56 fun.ztree-diff-view-file.()..."V
f280 69 65 77 20 66 69 6c 65 20 61 74 20 70 6f 69 6e 74 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 iew.file.at.point,.depending.on.
f2a0 73 69 64 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 side."...(interactive)...(let.((
f2c0 66 6f 75 6e 64 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 found.(ztree-find-node-at-point)
f2e0 29 29 0a 20 20 20 20 28 77 68 65 6e 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 )).....(when.found.......(let*.(
f300 28 6e 6f 64 65 20 28 63 61 72 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (node.(car.found))..............
f320 28 73 69 64 65 20 28 63 64 72 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (side.(cdr.found))..............
f340 28 6e 6f 64 65 2d 73 69 64 65 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 69 64 65 (node-side.(ztree-diff-node-side
f360 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 6c 65 66 74 20 .node))..............(node-left.
f380 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 (ztree-diff-node-left-path.node)
f3a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 72 69 67 68 74 20 28 7a 74 72 65 )..............(node-right.(ztre
f3c0 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 0a 20 e-diff-node-right-path.node)))..
f3e0 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 65 71 20 6e 6f 64 65 2d 73 69 64 65 20 27 .......(when.(or.(eq.node-side.'
f400 62 6f 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 73 69 64 65 both)...................(eq.side
f420 20 6e 6f 64 65 2d 73 69 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 61 .node-side))...........(cond.((a
f440 6e 64 20 28 65 71 20 73 69 64 65 20 27 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.(eq.side.'left)..............
f460 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........node-left).............
f480 20 20 20 20 20 28 76 69 65 77 2d 66 69 6c 65 20 6e 6f 64 65 2d 6c 65 66 74 29 29 0a 20 20 20 20 .....(view-file.node-left)).....
f4a0 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 65 71 20 73 69 64 65 20 27 72 69 67 68 ............((and.(eq.side.'righ
f4c0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 72 69 t).......................node-ri
f4e0 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 69 65 77 2d 66 69 6c 65 ght)..................(view-file
f500 20 6e 6f 64 65 2d 72 69 67 68 74 29 29 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 .node-right))))))))...(defun.ztr
f520 65 65 2d 64 69 66 66 2d 64 65 6c 65 74 65 2d 66 69 6c 65 20 28 29 0a 20 20 22 44 65 6c 65 74 65 ee-diff-delete-file.()..."Delete
f540 20 74 68 65 20 66 69 6c 65 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 73 6f 72 2e 22 0a 20 20 28 .the.file.under.the.cursor."...(
f560 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 66 6f 75 6e 64 20 28 7a 74 72 interactive)...(let.((found.(ztr
f580 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 77 68 ee-find-node-at-point))).....(wh
f5a0 65 6e 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 63 61 72 en.found.......(let*.((node.(car
f5c0 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 69 64 65 20 28 63 64 72 .found))..............(side.(cdr
f5e0 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 73 69 64 65 .found))..............(node-side
f600 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 69 64 65 20 6e 6f 64 65 29 29 0a 20 20 .(ztree-diff-node-side.node))...
f620 20 20 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e ...........(parent.(ztree-diff-n
f640 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ode-parent.node))..............;
f660 3b 20 61 6c 67 6f 72 69 74 68 6d 20 66 6f 72 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 77 68 61 74 ;.algorithm.for.determining.what
f680 20 74 6f 20 64 65 6c 65 74 65 20 73 69 6d 69 6c 61 72 20 74 6f 20 63 6f 70 79 3a 0a 20 20 20 20 .to.delete.similar.to.copy:.....
f6a0 20 20 20 20 20 20 20 20 20 3b 3b 20 31 2e 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 70 72 .........;;.1..if.the.file.is.pr
f6c0 65 73 65 6e 74 20 6f 6e 20 62 6f 74 68 20 73 69 64 65 73 2c 20 64 65 6c 65 74 65 0a 20 20 20 20 esent.on.both.sides,.delete.....
f6e0 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 66 72 6f 6d 20 74 68 65 20 73 69 64 65 20 63 75 72 .........;;....from.the.side.cur
f700 72 65 6e 74 6c 79 20 73 65 6c 65 63 74 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 rently.selected..............;;.
f720 32 2e 20 69 66 20 6f 6e 65 20 6f 66 20 73 69 64 65 73 20 69 73 20 61 62 73 65 6e 74 2c 20 64 65 2..if.one.of.sides.is.absent,.de
f740 6c 65 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 66 72 6f 6d 20 74 68 65 lete..............;;....from.the
f760 20 73 69 64 65 20 77 68 65 72 65 20 74 68 65 20 66 69 6c 65 20 69 73 20 70 72 65 73 65 6e 74 0a .side.where.the.file.is.present.
f780 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 66 72 6f 6d 2d 6c 65 66 74 0a 20 .............(delete-from-left..
f7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71 6c 20 6e 6f 64 65 2d 73 69 64 65 20 .............(or.(eql.node-side.
f7c0 27 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 'left)...................(and.(e
f7e0 71 6c 20 6e 6f 64 65 2d 73 69 64 65 20 27 62 6f 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ql.node-side.'both).............
f800 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 73 69 64 65 20 27 6c 65 66 74 29 29 29 29 0a 20 ...........(eql.side.'left))))..
f820 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 70 61 74 68 20 28 69 66 20 64 65 6c ............(remove-path.(if.del
f840 65 74 65 2d 66 72 6f 6d 2d 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ete-from-left...................
f860 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 ............(ztree-diff-node-lef
f880 74 2d 70 61 74 68 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-path.node)....................
f8a0 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d .........(ztree-diff-node-right-
f8c0 70 61 74 68 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 path.node)))).........(when.(and
f8e0 20 70 61 72 65 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 6f 20 .parent....................;.do.
f900 6e 6f 74 20 64 65 6c 65 74 65 20 74 68 65 20 72 6f 6f 74 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 not.delete.the.root.node........
f920 20 20 20 20 20 20 20 20 20 20 20 20 28 79 65 73 2d 6f 72 2d 6e 6f 2d 70 20 28 66 6f 72 6d 61 74 ............(yes-or-no-p.(format
f940 20 22 44 65 6c 65 74 65 20 74 68 65 20 66 69 6c 65 20 5b 25 73 5d 25 73 20 3f 22 0a 20 20 20 20 ."Delete.the.file.[%s]%s.?".....
f960 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 ................................
f980 20 20 20 20 28 69 66 20 64 65 6c 65 74 65 2d 66 72 6f 6d 2d 6c 65 66 74 20 22 4c 45 46 54 22 20 ....(if.delete-from-left."LEFT".
f9a0 22 52 49 47 48 54 22 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 "RIGHT")........................
f9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 6d 6f 76 65 2d 70 61 74 68 29 29 29 0a .................remove-path))).
f9e0 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 65 6c 65 74 65 2d 63 6f 6d 6d 61 6e 64 ..........(let*.((delete-command
fa00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 ...................(if.(file-dir
fa20 65 63 74 6f 72 79 2d 70 20 72 65 6d 6f 76 65 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 ectory-p.remove-path)...........
fa40 20 20 20 20 20 20 20 20 20 20 20 20 23 27 64 65 6c 65 74 65 2d 64 69 72 65 63 74 6f 72 79 0a 20 ............#'delete-directory..
fa60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 64 65 6c 65 74 65 2d 66 69 6c 65 ...................#'delete-file
fa80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 7a ))..................(children.(z
faa0 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 70 61 72 65 6e 74 29 29 tree-diff-node-children.parent))
fac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 0a 20 20 20 20 20 20 20 20 20 ..................(err..........
fae0 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 6f 72 2d 74 .........(condition-case.error-t
fb00 72 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e rap.......................(progn
fb20 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 28 66 75 6e 63 61 6c .........................(funcal
fb40 6c 20 64 65 6c 65 74 65 2d 63 6f 6d 6d 61 6e 64 20 72 65 6d 6f 76 65 2d 70 61 74 68 20 74 29 0a l.delete-command.remove-path.t).
fb60 20 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 0a 20 20 20 ........................nil)....
fb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 65 72 72 6f 72 2d 74 72 .................(error.error-tr
fba0 61 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 65 72 72 0a 20 20 20 20 20 ap)))).............(if.err......
fbc0 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(progn...............
fbe0 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 45 72 72 6f 72 3a 20 22 20 28 ....(message.(concat."Error:.".(
fc00 6e 74 68 20 32 20 65 72 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b nth.2.err)))...................;
fc20 3b 20 77 68 65 6e 20 65 72 72 6f 72 20 68 61 70 70 65 6e 65 64 20 77 68 69 6c 65 20 64 65 6c 65 ;.when.error.happened.while.dele
fc40 74 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 69 ting.the...................;;.di
fc60 72 65 63 74 6f 72 79 2c 20 72 65 73 63 61 6e 20 74 68 65 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 rectory,.rescan.the.node........
fc80 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 75 70 64 61 74 65 20 74 68 65 20 70 61 72 ...........;;.and.update.the.par
fca0 65 6e 74 73 20 77 69 74 68 20 61 20 6e 65 77 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 ents.with.a.new.status..........
fcc0 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 66 20 74 68 69 73 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 .........;;.of.this.node........
fce0 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 ...........(when.(file-directory
fd00 2d 70 20 72 65 6d 6f 76 65 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -p.remove-path).................
fd20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 70 61 72 74 69 61 6c 2d 72 65 ....(ztree-diff-model-partial-re
fd40 73 63 61 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 scan.node)))...............;;.if
fd60 20 65 76 65 72 79 74 68 69 6e 67 20 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 .everything.ok...............;;.
fd80 69 66 20 77 61 73 20 6f 6e 6c 79 20 6f 6e 20 6f 6e 65 20 73 69 64 65 0a 20 20 20 20 20 20 20 20 if.was.only.on.one.side.........
fda0 20 20 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 74 68 65 20 6e 6f 64 65 20 66 72 6f 6d 20 63 68 ......;;.remove.the.node.from.ch
fdc0 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 61 6e ildren...............(if.(or.(an
fde0 64 20 28 65 71 6c 20 6e 6f 64 65 2d 73 69 64 65 20 27 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 d.(eql.node-side.'left).........
fe00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 2d 66 72 6f 6d 2d 6c ...................delete-from-l
fe20 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 eft).......................(and.
fe40 28 65 71 6c 20 6e 6f 64 65 2d 73 69 64 65 20 27 72 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 (eql.node-side.'right)..........
fe60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 64 65 6c 65 74 65 2d 66 72 ..................(not.delete-fr
fe80 6f 6d 2d 6c 65 66 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 om-left)))...................(se
fea0 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 70 61 72 tf.(ztree-diff-node-children.par
fec0 65 6e 74 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 28 7a 74 ent).........................(zt
fee0 72 65 65 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ree-filter......................
ff00 20 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 6e 6f 74 20 28 7a 74 72 65 65 2d 64 69 66 66 ....(lambda.(x).(not.(ztree-diff
ff20 2d 6e 6f 64 65 2d 65 71 75 61 6c 20 78 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 -node-equal.x.node)))...........
ff40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 72 65 6e 29 29 0a 20 20 20 20 20 20 ...............children)).......
ff60 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 20 75 70 64 61 74 65 20 6f 6e ..........;;.otherwise.update.on
ff80 6c 79 20 6f 6e 65 20 73 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 ly.one.side.................(map
ffa0 63 20 28 69 66 20 64 65 6c 65 74 65 2d 66 72 6f 6d 2d 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 c.(if.delete-from-left..........
ffc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 73 65 .................(lambda.(x).(se
ffe0 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 78 29 tf.(ztree-diff-node-left-path.x)
10000 20 6e 69 6c 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 28 .nil)).........................(
10020 6c 61 6d 62 64 61 20 28 78 29 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 lambda.(x).(setf.(ztree-diff-nod
10040 65 2d 72 69 67 68 74 2d 70 61 74 68 20 78 29 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 e-right-path.x).nil)))..........
10060 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6e 6f 64 65 20 28 7a 74 72 65 65 2d 64 .............(cons.node.(ztree-d
10080 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 iff-node-children.node))).......
100a0 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 75 70 64 61 74 65 20 64 69 66 66 20 73 74 61 ..........;;.and.update.diff.sta
100c0 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 77 61 73 20 69 67 tus.................;;.if.was.ig
100e0 6e 6f 72 65 64 20 6b 65 65 70 20 74 68 65 20 6f 6c 64 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 nored.keep.the.old.status.......
10100 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 6c 20 28 7a 74 72 65 65 2d 64 69 ..........(unless.(eql.(ztree-di
10120 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 69 67 6e 6f 72 65 29 ff-node-different.node).'ignore)
10140 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d ...................(setf.(ztree-
10160 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 6e 65 77 29 29 diff-node-different.node).'new))
10180 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 6e 61 6c 6c 79 20 75 70 64 61 .................;;.finally.upda
101a0 74 65 20 61 6c 6c 20 63 68 69 6c 64 72 65 6e 20 73 74 61 74 75 73 65 73 0a 20 20 20 20 20 20 20 te.all.children.statuses........
101c0 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 64 61 74 65 .........(ztree-diff-node-update
101e0 2d 64 69 66 66 2d 66 72 6f 6d 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 -diff-from-parent.node))).......
10200 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 64 61 74 65 2d 61 6c ......(ztree-diff-node-update-al
10220 6c 2d 70 61 72 65 6e 74 73 2d 64 69 66 66 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 l-parents-diff.node)............
10240 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 28 6c 69 6e 65 2d 6e 75 6d .(ztree-refresh-buffer.(line-num
10260 62 65 72 2d 61 74 2d 70 6f 73 29 29 29 29 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 ber-at-pos))))))))....(defun.ztr
10280 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 69 67 6e 6f 72 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 ee-diff-node-ignore-p.(node)..."
102a0 44 65 74 65 72 6d 69 6e 65 20 69 66 20 74 68 65 20 4e 4f 44 45 20 69 73 20 69 6e 20 66 69 6c 74 Determine.if.the.NODE.is.in.filt
102c0 65 72 20 6c 69 73 74 2e 0a 49 66 20 74 68 65 20 6e 6f 64 65 20 69 73 20 69 6e 20 74 68 65 20 66 er.list..If.the.node.is.in.the.f
102e0 69 6c 74 65 72 20 6c 69 73 74 20 69 74 20 73 68 61 6c 6c 20 6e 6f 74 20 62 65 20 76 69 73 69 62 ilter.list.it.shall.not.be.visib
10300 6c 65 2c 0a 75 6e 6c 65 73 73 20 69 74 20 69 73 20 61 20 70 61 72 65 6e 74 20 6e 6f 64 65 2e 22 le,.unless.it.is.a.parent.node."
10320 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d ...(let.((name.(ztree-diff-node-
10340 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 3b 3b 20 69 67 6e 6f 72 65 short-name.node))).....;;.ignore
10360 20 74 68 65 6e 0a 20 20 20 20 3b 3b 20 6e 6f 74 20 61 20 72 6f 6f 74 20 61 6e 64 20 69 73 20 69 .then.....;;.not.a.root.and.is.i
10380 6e 20 66 69 6c 74 65 72 20 6c 69 73 74 0a 20 20 20 20 28 61 6e 64 20 28 7a 74 72 65 65 2d 64 69 n.filter.list.....(and.(ztree-di
103a0 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 28 7a ff-node-parent.node)..........(z
103c0 74 72 65 65 2d 66 69 6e 64 20 7a 74 72 65 65 2d 64 69 66 66 2d 66 69 6c 74 65 72 2d 6c 69 73 74 tree-find.ztree-diff-filter-list
103e0 20 23 27 28 6c 61 6d 62 64 61 20 28 72 78 29 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 78 .#'(lambda.(rx).(string-match.rx
10400 20 6e 61 6d 65 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 6e 6f 64 65 2d .name))))))...(defun.ztree-node-
10420 69 73 2d 76 69 73 69 62 6c 65 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 69 is-visible.(node)..."Determine.i
10440 66 20 74 68 65 20 4e 4f 44 45 20 73 68 6f 75 6c 64 20 62 65 20 76 69 73 69 62 6c 65 2e 22 0a 20 f.the.NODE.should.be.visible."..
10460 20 28 6c 65 74 20 28 28 64 69 66 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 .(let.((diff.(ztree-diff-node-di
10480 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 3b 3b 20 76 69 73 69 62 6c 65 20 74 fferent.node))).....;;.visible.t
104a0 68 65 6e 0a 20 20 20 20 3b 3b 20 65 69 74 68 65 72 20 69 74 20 69 73 20 61 20 72 6f 6f 74 2e 20 hen.....;;.either.it.is.a.root..
104c0 72 6f 6f 74 20 68 61 76 65 20 6e 6f 20 70 61 72 65 6e 74 0a 20 20 20 20 28 6f 72 20 28 6e 6f 74 root.have.no.parent.....(or.(not
104e0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 20 .(ztree-diff-node-parent.node)).
10500 20 20 20 3b 20 70 61 72 65 6e 74 20 69 73 20 61 6c 77 61 79 73 20 76 69 73 69 62 6c 65 0a 20 20 ...;.parent.is.always.visible...
10520 20 20 20 20 20 20 3b 3b 20 6f 72 20 74 68 65 20 66 69 6c 65 73 20 61 72 65 20 64 69 66 66 65 72 ......;;.or.the.files.are.differ
10540 65 6e 74 0a 20 20 20 20 20 20 20 20 28 65 71 6c 20 64 69 66 66 20 27 64 69 66 66 29 0a 20 20 20 ent.........(eql.diff.'diff)....
10560 20 20 20 20 20 3b 3b 20 6f 72 20 69 74 20 69 73 20 6f 72 70 68 61 6e 65 64 2c 20 62 75 74 20 73 .....;;.or.it.is.orphaned,.but.s
10580 68 6f 77 20 6f 72 70 68 61 6e 65 64 20 66 69 6c 65 73 20 66 6f 72 20 6e 6f 77 0a 20 20 20 20 20 how.orphaned.files.for.now......
105a0 20 20 20 28 61 6e 64 20 28 65 71 6c 20 64 69 66 66 20 27 6e 65 77 29 0a 20 20 20 20 20 20 20 20 ...(and.(eql.diff.'new).........
105c0 20 20 20 20 20 28 69 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 .....(if.(ztree-diff-node-left-p
105e0 61 74 68 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 ath.node)..................ztree
10600 2d 64 69 66 66 2d 73 68 6f 77 2d 6c 65 66 74 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 0a 20 20 20 -diff-show-left-orphan-files....
10620 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 68 6f 77 2d 72 69 67 68 ............ztree-diff-show-righ
10640 74 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6f 72 20 69 t-orphan-files)).........;;.or.i
10660 74 20 69 73 20 69 67 6e 6f 72 65 64 20 62 75 74 20 77 65 20 73 68 6f 77 20 69 67 6e 6f 72 65 64 t.is.ignored.but.we.show.ignored
10680 20 66 6f 72 20 6e 6f 77 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 6c 20 64 69 66 66 20 .for.now.........(and.(eql.diff.
106a0 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 64 69 66 66 'ignore)..............ztree-diff
106c0 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 29 0a 20 20 20 20 20 20 20 20 3b 3b -show-filtered-files).........;;
106e0 20 6f 72 20 74 68 65 79 20 61 72 65 20 73 61 6d 65 20 62 75 74 20 77 65 20 73 68 6f 77 20 73 61 .or.they.are.same.but.we.show.sa
10700 6d 65 20 66 6f 72 20 6e 6f 77 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 6c 20 64 69 66 me.for.now.........(and.(eql.dif
10720 66 20 27 73 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 64 69 66 66 f.'same)..............ztree-diff
10740 2d 73 68 6f 77 2d 65 71 75 61 6c 2d 66 69 6c 65 73 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f -show-equal-files))))..(defmacro
10760 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 66 69 6e 65 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 20 28 .ztree-diff-define-toggle-show.(
10780 77 68 61 74 29 0a 20 20 28 6c 65 74 20 28 28 66 75 6e 63 73 79 6d 62 6f 6c 20 28 69 6e 74 65 72 what)...(let.((funcsymbol.(inter
107a0 6e 20 28 63 6f 6e 63 61 74 20 22 7a 74 72 65 65 2d 64 69 66 66 2d 74 6f 67 67 6c 65 2d 73 68 6f n.(concat."ztree-diff-toggle-sho
107c0 77 2d 22 20 77 68 61 74 20 22 2d 66 69 6c 65 73 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 76 61 w-".what."-files"))).........(va
107e0 72 69 61 62 6c 65 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 7a 74 72 65 65 2d 64 69 riable.(intern.(concat."ztree-di
10800 66 66 2d 73 68 6f 77 2d 22 20 77 68 61 74 20 22 2d 66 69 6c 65 73 22 29 29 29 0a 20 20 20 20 20 ff-show-".what."-files")))......
10820 20 20 20 28 66 75 6e 64 65 73 63 20 28 63 6f 6e 63 61 74 20 22 54 6f 67 67 6c 65 20 76 69 73 69 ...(fundesc.(concat."Toggle.visi
10840 62 69 6c 69 74 79 20 6f 66 20 74 68 65 20 22 20 77 68 61 74 20 22 20 66 69 6c 65 73 2f 64 69 72 bility.of.the.".what.".files/dir
10860 65 63 74 6f 72 69 65 73 22 29 29 29 0a 20 20 20 20 60 28 64 65 66 75 6e 20 2c 66 75 6e 63 73 79 ectories"))).....`(defun.,funcsy
10880 6d 62 6f 6c 20 28 29 0a 20 20 20 20 20 20 20 2c 66 75 6e 64 65 73 63 0a 20 20 20 20 20 20 20 28 mbol.()........,fundesc........(
108a0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 76 61 72 69 61 interactive)........(setq.,varia
108c0 62 6c 65 20 28 6e 6f 74 20 2c 76 61 72 69 61 62 6c 65 29 29 0a 20 20 20 20 20 20 20 28 6d 65 73 ble.(not.,variable))........(mes
108e0 73 61 67 65 20 28 63 6f 6e 63 61 74 20 28 69 66 20 2c 76 61 72 69 61 62 6c 65 20 22 53 68 6f 77 sage.(concat.(if.,variable."Show
10900 20 22 20 22 48 69 64 65 20 22 29 20 2c 77 68 61 74 20 22 20 66 69 6c 65 73 22 29 29 0a 20 20 20 ."."Hide.").,what.".files"))....
10920 20 20 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 29 29 29 0a 0a 28 ....(ztree-refresh-buffer))))..(
10940 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 66 69 6e 65 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 20 22 65 ztree-diff-define-toggle-show."e
10960 71 75 61 6c 22 29 0a 28 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 66 69 6e 65 2d 74 6f 67 67 6c 65 qual").(ztree-diff-define-toggle
10980 2d 73 68 6f 77 20 22 66 69 6c 74 65 72 65 64 22 29 0a 28 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 -show."filtered").(ztree-diff-de
109a0 66 69 6e 65 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 20 22 6c 65 66 74 2d 6f 72 70 68 61 6e 22 29 0a fine-toggle-show."left-orphan").
109c0 28 7a 74 72 65 65 2d 64 69 66 66 2d 64 65 66 69 6e 65 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 20 22 (ztree-diff-define-toggle-show."
109e0 72 69 67 68 74 2d 6f 72 70 68 61 6e 22 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 right-orphan")..(defun.ztree-dif
10a00 66 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 20 28 29 0a 20 20 f-toggle-show-orphan-files.()...
10a20 22 54 6f 67 67 6c 65 20 76 69 73 69 62 69 6c 69 74 79 20 6f 66 20 6c 65 66 74 20 61 6e 64 20 72 "Toggle.visibility.of.left.and.r
10a40 69 67 68 74 20 6f 72 70 68 61 6e 20 66 69 6c 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 ight.orphan.files."...(interacti
10a60 76 65 29 0a 20 20 28 6c 65 74 20 28 28 73 68 6f 77 20 28 6e 6f 74 20 7a 74 72 65 65 2d 64 69 66 ve)...(let.((show.(not.ztree-dif
10a80 66 2d 73 68 6f 77 2d 6c 65 66 74 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 29 29 29 0a 20 20 20 20 f-show-left-orphan-files))).....
10aa0 28 73 65 74 71 20 7a 74 72 65 65 2d 64 69 66 66 2d 73 68 6f 77 2d 6c 65 66 74 2d 6f 72 70 68 61 (setq.ztree-diff-show-left-orpha
10ac0 6e 2d 66 69 6c 65 73 20 73 68 6f 77 29 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 64 69 n-files.show).....(setq.ztree-di
10ae0 66 66 2d 73 68 6f 77 2d 72 69 67 68 74 2d 6f 72 70 68 61 6e 2d 66 69 6c 65 73 20 73 68 6f 77 29 ff-show-right-orphan-files.show)
10b00 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 28 69 66 20 73 68 6f 77 20 22 .....(message.(concat.(if.show."
10b20 53 68 6f 77 22 20 22 48 69 64 65 22 29 20 22 20 6f 72 70 68 61 6e 20 66 69 6c 65 73 22 29 29 0a Show"."Hide").".orphan.files")).
10b40 20 20 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 29 29 0a 0a 3b 3b ....(ztree-refresh-buffer)))..;;
10b60 0a 3b 3b 20 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 7a 74 72 65 65 2d .;;.Implementation.of.the.ztree-
10b80 70 72 6f 74 6f 63 6f 6c 0a 3b 3b 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 protocol.;;..(cl-defmethod.ztree
10ba0 2d 6e 6f 64 65 2d 76 69 73 69 62 6c 65 2d 70 20 28 28 6e 6f 64 65 20 7a 74 72 65 65 2d 64 69 66 -node-visible-p.((node.ztree-dif
10bc0 66 2d 6e 6f 64 65 29 29 0a 20 20 22 52 65 74 75 72 6e 20 54 20 69 66 20 74 68 65 20 4e 4f 44 45 f-node))..."Return.T.if.the.NODE
10be0 20 73 68 61 6c 6c 20 62 65 20 76 69 73 69 62 6c 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 6e 6f 64 .shall.be.visible."...(ztree-nod
10c00 65 2d 69 73 2d 76 69 73 69 62 6c 65 20 6e 6f 64 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 e-is-visible.node))..(cl-defmeth
10c20 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 28 6e 6f 64 65 20 od.ztree-node-short-name.((node.
10c40 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 29 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 ztree-diff-node))..."Return.the.
10c60 73 68 6f 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 6f 64 65 2e 22 0a 20 20 28 7a 74 72 65 65 short.name.for.a.node."...(ztree
10c80 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 2d 77 72 61 70 70 65 72 20 6e 6f -diff-node-short-name-wrapper.no
10ca0 64 65 20 6e 69 6c 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f de.nil))..(cl-defmethod.ztree-no
10cc0 64 65 2d 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 28 6e 6f 64 65 20 7a 74 72 65 65 de-right-short-name.((node.ztree
10ce0 2d 64 69 66 66 2d 6e 6f 64 65 29 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 68 6f 72 74 -diff-node))..."Return.the.short
10d00 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 6f 64 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 .name.for.a.node."...(ztree-diff
10d20 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 2d 77 72 61 70 70 65 72 20 6e 6f 64 65 20 74 29 -node-short-name-wrapper.node.t)
10d40 29 0a 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 )...(cl-defmethod.ztree-node-exp
10d60 61 6e 64 61 62 6c 65 2d 70 20 28 28 6e 6f 64 65 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 andable-p.((node.ztree-diff-node
10d80 29 29 0a 20 20 22 52 65 74 75 72 6e 20 54 20 69 66 20 74 68 65 20 6e 6f 64 65 20 69 73 20 65 78 ))..."Return.T.if.the.node.is.ex
10da0 70 61 6e 64 61 62 6c 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 69 73 pandable."...(ztree-diff-node-is
10dc0 2d 64 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 -directory.node))..(cl-defmethod
10de0 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 71 75 61 6c 20 28 28 6e 6f 64 65 31 20 7a 74 72 65 65 2d .ztree-node-equal.((node1.ztree-
10e00 64 69 66 66 2d 6e 6f 64 65 29 20 28 6e 6f 64 65 32 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 diff-node).(node2.ztree-diff-nod
10e20 65 29 29 0a 20 20 22 45 71 75 61 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 4e 4f 44 e))..."Equality.function.for.NOD
10e40 45 31 20 61 6e 64 20 4e 4f 44 45 32 2e 0a 52 65 74 75 72 6e 20 54 20 69 66 20 6e 6f 64 65 73 20 E1.and.NODE2..Return.T.if.nodes.
10e60 61 72 65 20 65 71 75 61 6c 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 65 71 are.equal"...(ztree-diff-node-eq
10e80 75 61 6c 20 6e 6f 64 65 31 20 6e 6f 64 65 32 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 ual.node1.node2))..(cl-defmethod
10ea0 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 28 28 6e 6f 64 65 20 7a 74 72 65 .ztree-node-children.((node.ztre
10ec0 65 2d 64 69 66 66 2d 6e 6f 64 65 29 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f e-diff-node))..."Return.a.list.o
10ee0 66 20 4e 4f 44 45 20 63 68 69 6c 64 72 65 6e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e f.NODE.children"...(ztree-diff-n
10f00 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 ode-children.node))..(cl-defmeth
10f20 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 61 63 74 69 6f 6e 20 28 28 6e 6f 64 65 20 7a 74 72 65 od.ztree-node-action.((node.ztre
10f40 65 2d 64 69 66 66 2d 6e 6f 64 65 29 20 68 61 72 64 29 0a 20 20 22 50 65 72 66 6f 72 6d 20 61 6e e-diff-node).hard)..."Perform.an
10f60 20 61 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 52 65 74 75 72 6e 20 69 73 20 70 72 65 73 73 .action.when.the.Return.is.press
10f80 65 64 20 6f 6e 20 61 20 4e 4f 44 45 2e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 ed.on.a.NODE."...(ztree-diff-nod
10fa0 65 2d 61 63 74 69 6f 6e 20 6e 6f 64 65 20 68 61 72 64 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 e-action.node.hard))..(cl-defmet
10fc0 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 28 28 6e 6f 64 65 20 7a 74 72 65 65 hod.ztree-node-side.((node.ztree
10fe0 2d 64 69 66 66 2d 6e 6f 64 65 29 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 73 69 -diff-node))..."Determine.the.si
11000 64 65 20 6f 66 20 74 68 65 20 4e 4f 44 45 2e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e de.of.the.NODE."...(ztree-diff-n
11020 6f 64 65 2d 73 69 64 65 20 6e 6f 64 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a ode-side.node))..(cl-defmethod.z
11040 74 72 65 65 2d 6e 6f 64 65 2d 66 61 63 65 20 28 28 6e 6f 64 65 20 7a 74 72 65 65 2d 64 69 66 66 tree-node-face.((node.ztree-diff
11060 2d 6e 6f 64 65 29 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 61 63 65 20 74 6f 20 77 72 69 74 -node))..."Return.a.face.to.writ
11080 65 20 61 20 4e 4f 44 45 20 69 6e 22 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d e.a.NODE.in"...(ztree-diff-node-
110a0 66 61 63 65 20 6e 6f 64 65 29 29 0a 20 20 0a 3b 3b 0a 3b 3b 20 45 6e 74 72 79 20 70 6f 69 6e 74 face.node))....;;.;;.Entry.point
110c0 0a 3b 3b 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 .;;..;;;###autoload.(defun.ztree
110e0 2d 64 69 66 66 20 28 64 69 72 31 20 64 69 72 32 29 0a 20 20 22 43 72 65 61 74 65 20 61 6e 20 69 -diff.(dir1.dir2)..."Create.an.i
11100 6e 74 65 72 61 63 74 69 76 65 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 64 69 72 65 63 nteractive.buffer.with.the.direc
11120 74 6f 72 79 20 74 72 65 65 20 6f 66 20 74 68 65 20 70 61 74 68 20 67 69 76 65 6e 2e 0a 41 72 67 tory.tree.of.the.path.given..Arg
11140 75 6d 65 6e 74 20 44 49 52 31 20 6c 65 66 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 41 72 67 75 6d ument.DIR1.left.directory..Argum
11160 65 6e 74 20 44 49 52 32 20 72 69 67 68 74 20 64 69 72 65 63 74 6f 72 79 2e 22 0a 20 20 28 69 6e ent.DIR2.right.directory."...(in
11180 74 65 72 61 63 74 69 76 65 20 22 44 4c 65 66 74 20 64 69 72 65 63 74 6f 72 79 20 5c 6e 44 52 69 teractive."DLeft.directory.\nDRi
111a0 67 68 74 20 64 69 72 65 63 74 6f 72 79 20 22 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 ght.directory.")...(unless.(and.
111c0 64 69 72 31 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 31 29 29 0a 20 20 dir1.(file-directory-p.dir1))...
111e0 20 20 28 65 72 72 6f 72 20 22 50 61 74 68 20 25 73 20 69 73 20 6e 6f 74 20 61 20 64 69 72 65 63 ..(error."Path.%s.is.not.a.direc
11200 74 6f 72 79 22 20 64 69 72 31 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 69 6c 65 2d 65 78 69 tory".dir1))...(unless.(file-exi
11220 73 74 73 2d 70 20 64 69 72 31 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 50 61 74 68 20 25 73 20 sts-p.dir1).....(error."Path.%s.
11240 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 22 20 64 69 72 31 29 29 0a 20 20 28 75 6e 6c 65 73 73 does.not.exist".dir1))...(unless
11260 20 28 61 6e 64 20 64 69 72 32 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 64 69 72 .(and.dir2.(file-directory-p.dir
11280 32 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 50 61 74 68 20 25 73 20 69 73 20 6e 6f 74 20 61 2)).....(error."Path.%s.is.not.a
112a0 20 64 69 72 65 63 74 6f 72 79 22 20 64 69 72 32 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 66 69 .directory".dir2))...(unless.(fi
112c0 6c 65 2d 65 78 69 73 74 73 2d 70 20 64 69 72 32 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 50 61 le-exists-p.dir2).....(error."Pa
112e0 74 68 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 22 20 64 69 72 32 29 29 0a 20 20 28 th.%s.does.not.exist".dir2))...(
11300 75 6e 6c 65 73 73 20 28 7a 74 72 65 65 2d 73 61 6d 65 2d 68 6f 73 74 2d 70 20 64 69 72 31 20 64 unless.(ztree-same-host-p.dir1.d
11320 69 72 32 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 6d 70 61 72 65 64 20 64 69 72 65 63 74 ir2).....(error."Compared.direct
11340 6f 72 69 65 73 20 61 72 65 20 6e 6f 74 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 68 6f 73 74 22 29 ories.are.not.on.the.same.host")
11360 29 0a 20 20 28 6c 65 74 2a 20 28 28 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 )...(let*.((model...........(ztr
11380 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 72 65 61 74 65 20 6e 69 6c 20 64 69 72 31 20 64 69 72 ee-diff-node-create.nil.dir1.dir
113a0 32 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 2d 6e 61 6d 65 20 28 63 6f 6e 63 2.nil))..........(buf-name.(conc
113c0 61 74 20 22 2a 22 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 at."*"..........................
113e0 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6d 6f ..(ztree-diff-node-short-name.mo
11400 64 65 6c 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 del)............................
11420 22 20 3c 2d 2d 3e 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ".<-->."........................
11440 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 73 68 6f 72 74 ....(ztree-diff-node-right-short
11460 2d 6e 61 6d 65 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -name.model)....................
11480 20 20 20 20 20 20 20 20 22 2a 22 29 29 29 0a 20 20 20 20 3b 3b 20 61 66 74 65 72 20 74 68 69 73 ........"*"))).....;;.after.this
114a0 20 63 6f 6d 6d 61 6e 64 20 77 65 20 61 72 65 20 69 6e 20 61 20 6e 65 77 20 62 75 66 66 65 72 2c .command.we.are.in.a.new.buffer,
114c0 0a 20 20 20 20 3b 3b 20 73 6f 20 61 6c 6c 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 73 .....;;.so.all.buffer-local.vars
114e0 20 61 72 65 20 76 61 6c 69 64 0a 20 20 20 20 28 7a 74 72 65 65 2d 76 69 65 77 20 62 75 66 2d 6e .are.valid.....(ztree-view.buf-n
11500 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 7a 74 72 65 65 2d 64 69 66 66 ame.................#'ztree-diff
11520 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 -insert-buffer-header...........
11540 20 20 20 20 20 20 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d ......model.................(lam
11560 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d bda.()...................(ztree-
11580 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 65 74 2d 69 67 6e 6f 72 65 2d 66 75 6e 20 23 27 7a 74 72 65 diff-model-set-ignore-fun.#'ztre
115a0 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 69 67 6e 6f 72 65 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 e-diff-node-ignore-p)...........
115c0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 64 69 66 66 2d 64 69 72 73 2d 70 61 ........(setq.ztree-diff-dirs-pa
115e0 69 72 20 28 63 6f 6e 73 20 64 69 72 31 20 64 69 72 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ir.(cons.dir1.dir2))............
11600 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 .......(ztree-diff-node-recreate
11620 2d 77 69 74 68 2d 70 72 6f 67 72 65 73 73 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 -with-progress.model)...........
11640 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 64 69 66 66 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 ........(ztreediff-mode)).......
11660 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 7a 74 72 65 ..........t)))....(provide.'ztre
11680 65 2d 64 69 66 66 29 0a 3b 3b 3b 20 7a 74 72 65 65 2d 64 69 66 66 2e 65 6c 20 65 6e 64 73 20 68 e-diff).;;;.ztree-diff.el.ends.h
116a0 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 00 ere.............................
116c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
116e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
117a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
117c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
117e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11800 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 52 45 41 44 4d 45 2e 6d 64 00 00 00 00 00 00 00 00 00 00 00 ztree-1.0.6/README.md...........
11820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11860 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
11880 30 30 31 33 36 34 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 35 37 31 00 20 30 00 00 00 0013640.00000000000.012571..0...
118a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
118c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
118e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11900 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...................
11920 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...................
11940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
119e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a00 23 20 7a 74 72 65 65 0a 5a 74 72 65 65 20 69 73 20 61 20 70 72 6f 6a 65 63 74 20 64 65 64 69 63 #.ztree.Ztree.is.a.project.dedic
11a20 61 74 65 64 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 73 65 76 65 72 61 ated.to.implementation.of.severa
11a40 6c 20 74 65 78 74 2d 74 72 65 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 69 6e 73 69 64 65 20 l.text-tree.applications.inside.
11a60 5b 47 4e 55 20 45 6d 61 63 73 5d 28 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 [GNU.Emacs](http://www.gnu.org/s
11a80 6f 66 74 77 61 72 65 2f 65 6d 61 63 73 2f 29 2e 20 49 74 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 oftware/emacs/)..It.consists.of.
11aa0 32 20 73 75 62 70 72 6f 6a 65 63 74 73 3a 20 2a 2a 7a 74 72 65 65 2d 64 69 66 66 2a 2a 20 61 6e 2.subprojects:.**ztree-diff**.an
11ac0 64 20 2a 2a 7a 74 72 65 65 2d 64 69 72 2a 2a 20 28 74 68 65 20 62 61 73 69 73 20 6f 66 20 2a 2a d.**ztree-dir**.(the.basis.of.**
11ae0 7a 74 72 65 65 2d 64 69 66 66 2a 2a 29 2e 20 41 76 61 69 6c 61 62 6c 65 20 69 6e 20 5b 47 4e 55 ztree-diff**)..Available.in.[GNU
11b00 20 45 4c 50 41 5d 28 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 67 6e 75 2e 6f 72 67 2f 29 20 61 6e .ELPA](https://elpa.gnu.org/).an
11b20 64 20 5b 4d 45 4c 50 41 5d 28 68 74 74 70 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 29 2e 0a d.[MELPA](http://melpa.org/#/)..
11b40 0a 23 23 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 0a 23 23 23 20 55 73 69 6e 67 20 45 4c 50 41 .##.Installation..###.Using.ELPA
11b60 0a 50 72 65 73 73 20 60 4d 2d 78 60 20 69 6e 20 47 4e 55 20 45 6d 61 63 73 20 61 6e 64 20 77 72 .Press.`M-x`.in.GNU.Emacs.and.wr
11b80 69 74 65 20 60 6c 69 73 74 2d 70 61 63 6b 61 67 65 73 60 2e 20 46 69 6e 64 20 74 68 65 20 60 7a ite.`list-packages`..Find.the.`z
11ba0 74 72 65 65 60 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 70 61 63 6b 61 67 65 73 20 61 6e tree`.in.the.list.of.packages.an
11bc0 64 20 70 72 65 73 73 20 60 69 60 20 74 6f 20 73 65 6c 65 63 74 20 74 68 69 73 20 70 61 63 6b 61 d.press.`i`.to.select.this.packa
11be0 67 65 2c 20 60 78 60 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 70 61 63 6b 61 67 65 2e 0a ge,.`x`.to.install.the.package..
11c00 0a 23 23 23 20 55 73 69 6e 67 20 4d 45 4c 50 41 0a 41 64 64 20 74 6f 20 79 6f 75 72 20 60 2e 65 .###.Using.MELPA.Add.to.your.`.e
11c20 6d 61 63 73 60 20 6f 72 20 60 2e 65 6d 61 63 73 2e 64 2f 69 6e 69 74 2e 65 6c 60 20 66 6f 6c 6c macs`.or.`.emacs.d/init.el`.foll
11c40 6f 77 69 6e 67 20 6c 69 6e 65 73 3a 0a 0a 60 60 60 73 63 68 65 6d 65 0a 28 73 65 74 71 20 70 61 owing.lines:..```scheme.(setq.pa
11c60 63 6b 61 67 65 2d 61 72 63 68 69 76 65 73 20 27 28 28 22 67 6e 75 22 20 2e 20 22 68 74 74 70 3a ckage-archives.'(("gnu"..."http:
11c80 2f 2f 65 6c 70 61 2e 67 6e 75 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f 22 29 0a 20 20 20 20 20 //elpa.gnu.org/packages/")......
11ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 6d 65 6c 70 61 22 20 2e 20 22 ....................("melpa"..."
11cc0 68 74 74 70 3a 2f 2f 6d 65 6c 70 61 2e 6d 69 6c 6b 62 6f 78 2e 6e 65 74 2f 70 61 63 6b 61 67 65 http://melpa.milkbox.net/package
11ce0 73 2f 22 29 29 29 0a 60 60 60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s/"))).```......................
11d00 20 20 20 20 0a 46 6f 6c 6c 6f 77 20 74 68 65 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 69 6e 73 .....Follow.the.installation.ins
11d20 74 72 75 63 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 47 4e 55 20 45 4c 50 41 20 61 62 6f 76 65 tructions.for.the.GNU.ELPA.above
11d40 2e 0a 0a 23 23 23 20 4d 61 6e 75 61 6c 0a 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 ...###.Manual.Add.the.following.
11d60 74 6f 20 79 6f 75 72 20 2e 65 6d 61 63 73 20 66 69 6c 65 3a 0a 0a 60 60 60 73 63 68 65 6d 65 0a to.your..emacs.file:..```scheme.
11d80 28 70 75 73 68 20 28 73 75 62 73 74 69 74 75 74 65 2d 69 6e 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 (push.(substitute-in-file-name."
11da0 70 61 74 68 2d 74 6f 2d 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 22 29 20 6c 6f 61 64 2d 70 path-to-ztree-directory").load-p
11dc0 61 74 68 29 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 29 0a 60 60 60 0a 0a 23 23 20 7a 74 ath).(require.'ztree).```..##.zt
11de0 72 65 65 2d 64 69 66 66 0a 2a 2a 7a 74 72 65 65 2d 64 69 66 66 2a 2a 20 69 73 20 61 20 64 69 72 ree-diff.**ztree-diff**.is.a.dir
11e00 65 63 74 6f 72 79 2d 64 69 66 66 20 74 6f 6f 6c 20 66 6f 72 20 45 6d 61 63 73 20 69 6e 73 70 69 ectory-diff.tool.for.Emacs.inspi
11e20 72 65 64 20 62 79 20 63 6f 6d 6d 65 72 63 69 61 6c 20 74 6f 6f 6c 73 20 6c 69 6b 65 20 42 65 79 red.by.commercial.tools.like.Bey
11e40 6f 6e 64 20 43 6f 6d 70 61 72 65 20 6f 72 20 41 72 61 78 69 73 20 4d 65 72 67 65 2e 20 49 74 20 ond.Compare.or.Araxis.Merge..It.
11e60 73 75 70 70 6f 72 74 73 20 73 68 6f 77 69 6e 67 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 supports.showing.the.difference.
11e80 62 65 74 77 65 65 6e 20 74 77 6f 20 64 69 72 65 63 74 6f 72 69 65 73 3b 20 63 61 6c 6c 69 6e 67 between.two.directories;.calling
11ea0 20 2a 2a 45 64 69 66 66 2a 2a 20 66 6f 72 20 6e 6f 74 20 6d 61 74 63 68 69 6e 67 20 66 69 6c 65 .**Ediff**.for.not.matching.file
11ec0 73 2c 20 63 6f 70 79 69 6e 67 20 62 65 74 77 65 65 6e 20 64 69 72 65 63 74 6f 72 69 65 73 2c 20 s,.copying.between.directories,.
11ee0 64 65 6c 65 74 69 6e 67 20 66 69 6c 65 2f 64 69 72 65 63 74 6f 72 69 65 73 2c 20 68 69 64 69 6e deleting.file/directories,.hidin
11f00 67 2f 73 68 6f 77 69 6e 67 20 65 71 75 61 6c 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 g/showing.equal.files/directorie
11f20 73 2e 0a 0a 54 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 69 74 73 65 6c 66 20 70 65 72 66 6f 72 s...The.comparison.itself.perfor
11f40 6d 65 64 20 77 69 74 68 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20 2a 2a 47 4e 55 20 64 69 66 66 med.with.the.external.**GNU.diff
11f60 2a 2a 20 74 6f 6f 6c 2c 20 73 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 6f 20 68 61 76 65 20 6f 6e **.tool,.so.make.sure.to.have.on
11f80 65 20 69 6e 20 74 68 65 20 65 78 65 63 75 74 61 62 6c 65 20 70 61 74 68 2e 20 56 65 72 69 66 69 e.in.the.executable.path..Verifi
11fa0 65 64 20 6f 6e 20 4f 53 58 20 61 6e 64 20 4c 69 6e 75 78 2e 0a 0a 49 66 20 6f 6e 65 20 77 61 6e ed.on.OSX.and.Linux...If.one.wan
11fc0 74 73 20 74 6f 20 68 61 76 65 20 61 20 73 74 61 6e 64 2d 61 6c 6f 6e 65 20 61 70 70 6c 69 63 61 ts.to.have.a.stand-alone.applica
11fe0 74 69 6f 6e 2c 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20 28 57 49 50 29 5b 7a 64 69 72 63 6d 70 tion,.consider.the.(WIP)[zdircmp
12000 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 64 69 ](https://github.com/fourier/zdi
12020 72 63 6d 70 29 20 70 72 6f 6a 65 63 74 20 62 61 73 65 64 20 6f 6e 20 2a 2a 7a 74 72 65 65 2d 64 rcmp).project.based.on.**ztree-d
12040 69 66 66 2a 2a 2e 0a 0a 43 61 6c 6c 20 74 68 65 20 60 7a 74 72 65 65 2d 64 69 66 66 60 20 69 6e iff**...Call.the.`ztree-diff`.in
12060 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 3a 0a 0a 60 60 60 0a 4d 2d 78 20 7a 74 72 teractive.function:..```.M-x.ztr
12080 65 65 2d 64 69 66 66 0a 60 60 60 0a 54 68 65 6e 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 73 70 65 ee-diff.```.Then.you.need.to.spe
120a0 63 69 66 79 20 74 68 65 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 64 69 72 65 63 74 6f 72 cify.the.left.and.right.director
120c0 69 65 73 20 74 6f 20 63 6f 6d 70 61 72 65 2e 0a 0a 23 23 23 20 48 6f 74 6b 65 79 73 20 73 75 70 ies.to.compare...###.Hotkeys.sup
120e0 70 6f 72 74 65 64 0a 20 2a 20 4f 70 65 6e 2f 63 6c 6f 73 65 20 64 69 72 65 63 74 6f 72 69 65 73 ported..*.Open/close.directories
12100 20 77 69 74 68 20 64 6f 75 62 6c 65 2d 63 6c 69 63 6b 2c 20 60 52 45 54 60 20 6f 72 20 60 53 70 .with.double-click,.`RET`.or.`Sp
12120 61 63 65 60 20 6b 65 79 73 2e 0a 20 2a 20 54 6f 20 6a 75 6d 70 20 74 6f 20 74 68 65 20 70 61 72 ace`.keys...*.To.jump.to.the.par
12140 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 68 69 74 20 74 68 65 20 60 42 61 63 6b 73 70 61 63 ent.directory,.hit.the.`Backspac
12160 65 60 20 6b 65 79 2e 0a 20 2a 20 54 6f 20 74 6f 67 67 6c 65 20 6f 70 65 6e 2f 63 6c 6f 73 65 64 e`.key...*.To.toggle.open/closed
12180 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 73 75 62 74 72 65 65 20 6f 66 20 74 68 65 20 63 75 72 .state.of.the.subtree.of.the.cur
121a0 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 68 69 74 20 74 68 65 20 60 78 60 20 6b 65 79 2e rent.directory,.hit.the.`x`.key.
121c0 0a 20 2a 20 60 52 45 54 60 20 6f 6e 20 64 69 66 66 65 72 65 6e 74 20 66 69 6c 65 73 20 73 74 61 ..*.`RET`.on.different.files.sta
121e0 72 74 73 20 74 68 65 20 2a 2a 45 64 69 66 66 2a 2a 20 28 6f 72 20 6f 70 65 6e 20 66 69 6c 65 20 rts.the.**Ediff**.(or.open.file.
12200 69 66 20 6f 6e 65 20 61 62 73 65 6e 74 20 6f 72 20 74 68 65 20 73 61 6d 65 29 0a 20 2a 20 60 53 if.one.absent.or.the.same)..*.`S
12220 70 61 63 65 60 20 73 68 6f 77 20 74 68 65 20 73 69 6d 70 6c 65 20 64 69 66 66 20 77 69 6e 64 6f pace`.show.the.simple.diff.windo
12240 77 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 20 69 6e 73 74 65 61 64 20 6f w.for.the.current.file.instead.o
12260 66 20 2a 2a 45 64 69 66 66 2a 2a 20 28 6f 72 20 76 69 65 77 20 66 69 6c 65 20 69 66 20 6f 6e 65 f.**Ediff**.(or.view.file.if.one
12280 20 61 62 73 65 6e 74 20 6f 72 20 74 68 65 20 73 61 6d 65 29 0a 20 2a 20 60 54 41 42 60 20 74 6f .absent.or.the.same)..*.`TAB`.to
122a0 20 66 61 73 74 20 73 77 69 74 63 68 20 62 65 74 77 65 65 6e 20 70 61 6e 65 6c 73 0a 20 2a 20 60 .fast.switch.between.panels..*.`
122c0 68 60 20 6b 65 79 20 74 6f 20 74 6f 67 67 6c 65 20 73 68 6f 77 2f 68 69 64 65 20 69 64 65 6e 74 h`.key.to.toggle.show/hide.ident
122e0 69 63 61 6c 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 0a 20 2a 20 60 48 60 20 6b 65 ical.files/directories..*.`H`.ke
12300 79 20 74 6f 20 74 6f 67 67 6c 65 20 73 68 6f 77 2f 68 69 64 65 20 68 69 64 64 65 6e 2f 69 67 6e y.to.toggle.show/hide.hidden/ign
12320 6f 72 65 64 20 66 69 6c 65 73 2f 64 69 72 65 63 74 6f 72 69 65 73 0a 20 2a 20 60 43 60 20 6b 65 ored.files/directories..*.`C`.ke
12340 79 20 74 6f 20 63 6f 70 79 20 63 75 72 72 65 6e 74 20 66 69 6c 65 20 6f 72 20 64 69 72 65 63 74 y.to.copy.current.file.or.direct
12360 6f 72 79 20 74 6f 20 74 68 65 20 6c 65 66 74 20 6f 72 20 72 69 67 68 74 20 70 61 6e 65 6c 0a 20 ory.to.the.left.or.right.panel..
12380 2a 20 60 44 60 20 6b 65 79 20 74 6f 20 64 65 6c 65 74 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 *.`D`.key.to.delete.current.file
123a0 20 6f 72 20 64 69 72 65 63 74 6f 72 79 0a 20 2a 20 60 76 60 20 6b 65 79 20 74 6f 20 71 75 69 63 .or.directory..*.`v`.key.to.quic
123c0 6b 20 76 69 65 77 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 0a 20 2a 20 60 72 60 20 69 k.view.the.current.file..*.`r`.i
123e0 6e 69 74 69 61 74 65 73 20 74 68 65 20 72 65 73 63 61 6e 2f 72 65 66 72 65 73 68 20 6f 66 20 63 nitiates.the.rescan/refresh.of.c
12400 75 72 72 65 6e 74 20 66 69 6c 65 20 6f 72 20 73 75 62 64 69 72 65 63 74 6f 72 79 0a 20 2a 20 60 urrent.file.or.subdirectory..*.`
12420 46 35 60 20 66 6f 72 63 65 73 20 74 68 65 20 66 75 6c 6c 20 72 65 73 63 61 6e 2e 0a 0a 23 23 23 F5`.forces.the.full.rescan...###
12440 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 73 0a 42 79 20 64 65 66 61 75 6c 74 20 61 6c 6c 20 66 .Customizations.By.default.all.f
12460 69 6c 65 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 6f 74 20 28 6c 69 6b 65 20 60 2e 67 iles.starting.with.dot.(like.`.g
12480 69 74 69 67 6e 6f 72 65 60 29 20 61 72 65 20 6e 6f 74 20 73 68 6f 77 6e 20 61 6e 64 20 65 78 63 itignore`).are.not.shown.and.exc
124a0 6c 75 64 65 64 20 66 72 6f 6d 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 73 74 61 74 75 73 luded.from.the.difference.status
124c0 20 66 6f 72 20 64 69 72 65 63 74 6f 72 69 65 73 2e 20 4f 6e 65 20 63 61 6e 20 61 64 64 20 61 6e .for.directories..One.can.add.an
124e0 20 61 64 64 69 74 69 6f 6e 61 6c 20 72 65 67 65 78 70 73 20 74 6f 20 74 68 65 20 6c 69 73 74 20 .additional.regexps.to.the.list.
12500 60 7a 74 72 65 65 2d 64 69 66 66 2d 66 69 6c 74 65 72 2d 6c 69 73 74 60 2e 0a 0a 4f 6e 65 20 61 `ztree-diff-filter-list`...One.a
12520 6c 73 6f 20 63 6f 75 6c 64 20 74 75 72 6e 20 6f 6e 20 75 6e 69 63 6f 64 65 20 63 68 61 72 61 63 lso.could.turn.on.unicode.charac
12540 74 65 72 73 20 74 6f 20 64 72 61 77 20 74 68 65 20 74 72 65 65 20 77 69 74 68 20 69 6e 73 74 65 ters.to.draw.the.tree.with.inste
12560 61 64 20 6f 66 20 6e 6f 72 6d 61 6c 20 41 53 43 49 49 2d 63 68 61 72 61 63 74 65 72 73 2e 20 54 ad.of.normal.ASCII-characters..T
12580 68 69 73 20 69 73 20 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20 74 68 65 20 60 7a 74 72 65 65 2d his.is.controlled.by.the.`ztree-
125a0 64 72 61 77 2d 75 6e 69 63 6f 64 65 2d 6c 69 6e 65 73 60 20 76 61 72 69 61 62 6c 65 2e 0a 0a 54 draw-unicode-lines`.variable...T
125c0 68 65 20 76 61 72 69 61 62 6c 65 20 60 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 6e 73 69 64 65 72 he.variable.`ztree-diff-consider
125e0 2d 66 69 6c 65 2d 70 65 72 6d 69 73 73 69 6f 6e 73 60 20 28 77 68 69 63 68 20 69 73 20 60 6e 69 -file-permissions`.(which.is.`ni
12600 6c 60 20 62 79 20 64 65 66 61 75 6c 74 29 20 69 66 20 73 65 74 20 74 6f 20 60 74 60 20 61 6c 6c l`.by.default).if.set.to.`t`.all
12620 6f 77 73 20 74 6f 20 63 6f 6d 70 61 72 65 20 66 69 6c 65 20 61 74 74 72 69 62 75 74 65 73 20 61 ows.to.compare.file.attributes.a
12640 73 20 77 65 6c 6c 2c 20 74 68 65 20 66 69 6c 65 73 20 77 69 6c 6c 20 62 65 20 63 6f 6e 73 69 64 s.well,.the.files.will.be.consid
12660 65 72 65 64 20 64 69 66 66 65 72 65 6e 74 20 69 66 20 74 68 65 79 20 68 61 76 65 20 64 69 66 66 ered.different.if.they.have.diff
12680 65 72 65 6e 74 20 6d 6f 64 65 2e 0a 0a 54 68 65 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c erent.mode...The.special.variabl
126a0 65 20 60 7a 74 72 65 65 2d 64 69 66 66 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 6f 70 74 69 6f 6e 73 e.`ztree-diff-additional-options
126c0 60 0a 69 6e 74 72 6f 64 75 63 65 64 20 74 6f 20 70 72 6f 76 69 64 65 20 61 6e 20 61 64 64 69 74 `.introduced.to.provide.an.addit
126e0 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 0a 74 6f 20 74 68 65 20 27 64 69 66 66 27 20 74 6f ional.arguments.to.the.'diff'.to
12700 6f 6c 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 20 6f 6e 65 20 63 6f 75 6c 64 20 73 70 65 63 69 66 ol..For.example.one.could.specif
12720 79 0a 60 60 60 0a 28 73 65 74 71 20 7a 74 72 65 65 2d 64 69 66 66 2d 61 64 64 69 74 69 6f 6e 61 y.```.(setq.ztree-diff-additiona
12740 6c 2d 6f 70 74 69 6f 6e 73 20 27 28 22 2d 77 22 20 22 2d 69 22 29 29 0a 60 60 60 0a 74 6f 20 69 l-options.'("-w"."-i")).```.to.i
12760 67 6e 6f 72 65 20 63 61 73 65 20 64 69 66 66 65 72 65 6e 63 65 73 20 61 6e 64 20 77 68 69 74 65 gnore.case.differences.and.white
12780 73 70 61 63 65 20 64 69 66 66 65 72 65 6e 63 65 73 2e 0a 0a 0a 23 23 23 20 53 63 72 65 65 6e 73 space.differences....###.Screens
127a0 68 6f 74 73 0a 0a 21 5b 7a 74 72 65 65 64 69 66 66 20 65 6d 61 63 73 78 31 31 5d 28 68 74 74 70 hots..![ztreediff.emacsx11](http
127c0 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 2f 72 61 77 s://github.com/fourier/ztree/raw
127e0 2f 73 63 72 65 65 6e 73 68 6f 74 73 2f 73 63 72 65 65 6e 73 68 6f 74 73 2f 65 6d 61 63 73 5f 64 /screenshots/screenshots/emacs_d
12800 69 66 66 5f 78 74 65 72 6d 2e 70 6e 67 20 22 45 6d 61 63 73 20 69 6e 20 78 74 65 72 6d 20 77 69 iff_xterm.png."Emacs.in.xterm.wi
12820 74 68 20 7a 74 72 65 65 2d 64 69 66 66 22 29 0a 0a 21 5b 7a 74 72 65 65 64 69 66 66 2d 64 69 66 th.ztree-diff")..![ztreediff-dif
12840 66 20 65 6d 61 63 73 78 31 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 f.emacsx11](https://github.com/f
12860 6f 75 72 69 65 72 2f 7a 74 72 65 65 2f 72 61 77 2f 73 63 72 65 65 6e 73 68 6f 74 73 2f 73 63 72 ourier/ztree/raw/screenshots/scr
12880 65 65 6e 73 68 6f 74 73 2f 65 6d 61 63 73 5f 64 69 66 66 5f 73 69 6d 70 6c 65 64 69 66 66 5f 78 eenshots/emacs_diff_simplediff_x
128a0 74 65 72 6d 2e 70 6e 67 20 22 45 6d 61 63 73 20 69 6e 20 78 74 65 72 6d 20 77 69 74 68 20 7a 74 term.png."Emacs.in.xterm.with.zt
128c0 72 65 65 2d 64 69 66 66 20 61 6e 64 20 73 69 6d 70 6c 65 20 64 69 66 66 22 29 0a 0a 23 23 20 7a ree-diff.and.simple.diff")..##.z
128e0 74 72 65 65 2d 64 69 72 0a 0a 2a 2a 7a 74 72 65 65 2d 64 69 72 2a 2a 20 69 73 20 61 20 73 69 6d tree-dir..**ztree-dir**.is.a.sim
12900 70 6c 65 20 74 65 78 74 2d 6d 6f 64 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 20 66 6f 72 ple.text-mode.directory.tree.for
12920 20 45 6d 61 63 73 2e 20 53 65 65 20 73 63 72 65 65 6e 73 68 6f 74 73 20 62 65 6c 6f 77 20 66 6f .Emacs..See.screenshots.below.fo
12940 72 20 74 68 65 20 47 55 49 20 61 6e 64 20 74 68 65 20 74 65 72 6d 69 6e 61 6c 20 76 65 72 73 69 r.the.GUI.and.the.terminal.versi
12960 6f 6e 73 20 6f 66 20 74 68 65 20 2a 2a 7a 74 72 65 65 2d 64 69 72 2a 2a 2e 0a 0a 43 61 6c 6c 20 ons.of.the.**ztree-dir**...Call.
12980 74 68 65 20 60 7a 74 72 65 65 2d 64 69 72 60 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 the.`ztree-dir`.interactive.func
129a0 74 69 6f 6e 3a 0a 0a 60 60 60 0a 4d 2d 78 20 7a 74 72 65 65 2d 64 69 72 0a 60 60 60 0a 0a 23 23 tion:..```.M-x.ztree-dir.```..##
129c0 23 20 48 6f 74 6b 65 79 73 20 73 75 70 70 6f 72 74 65 64 0a 2a 20 4f 70 65 6e 2f 63 6c 6f 73 65 #.Hotkeys.supported.*.Open/close
129e0 20 64 69 72 65 63 74 6f 72 69 65 73 20 77 69 74 68 20 64 6f 75 62 6c 65 2d 63 6c 69 63 6b 2c 20 .directories.with.double-click,.
12a00 60 52 45 54 60 20 6f 72 20 60 53 70 61 63 65 60 20 6b 65 79 73 2e 0a 2a 20 54 6f 20 6a 75 6d 70 `RET`.or.`Space`.keys..*.To.jump
12a20 20 74 6f 20 74 68 65 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 68 69 74 20 74 68 .to.the.parent.directory,.hit.th
12a40 65 20 60 42 61 63 6b 73 70 61 63 65 60 20 6b 65 79 2e 0a 2a 20 54 6f 20 74 6f 67 67 6c 65 20 6f e.`Backspace`.key..*.To.toggle.o
12a60 70 65 6e 2f 63 6c 6f 73 65 64 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 73 75 62 74 72 65 65 20 pen/closed.state.of.the.subtree.
12a80 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 68 69 74 20 74 68 of.the.current.directory,.hit.th
12aa0 65 20 60 78 60 20 6b 65 79 2e 0a 2a 20 54 6f 20 76 69 73 69 74 20 61 20 66 69 6c 65 2c 20 70 72 e.`x`.key..*.To.visit.a.file,.pr
12ac0 65 73 73 20 60 53 70 61 63 65 60 20 6b 65 79 2e 0a 2a 20 54 6f 20 6f 70 65 6e 20 66 69 6c 65 20 ess.`Space`.key..*.To.open.file.
12ae0 69 6e 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 2c 20 75 73 65 20 60 52 45 54 60 20 6b 65 79 2e 0a in.other.window,.use.`RET`.key..
12b00 2a 20 54 6f 20 6f 70 65 6e 20 60 44 69 72 65 64 60 20 77 69 74 68 20 74 68 65 20 64 69 72 65 63 *.To.open.`Dired`.with.the.direc
12b20 74 6f 72 79 20 74 68 65 20 70 6f 69 6e 74 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 2c 20 tory.the.point.is.currently.on,.
12b40 75 73 65 20 74 68 65 20 60 64 60 20 6b 65 79 2e 0a 0a 23 23 23 20 43 75 73 74 6f 6d 69 7a 61 74 use.the.`d`.key...###.Customizat
12b60 69 6f 6e 73 0a 53 65 74 20 74 68 65 20 60 7a 74 72 65 65 2d 64 69 72 2d 6d 6f 76 65 2d 66 6f 63 ions.Set.the.`ztree-dir-move-foc
12b80 75 73 60 20 76 61 72 69 61 62 6c 65 20 74 6f 20 60 74 60 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 us`.variable.to.`t`.in.order.to.
12ba0 6d 6f 76 65 20 66 6f 63 75 73 20 74 6f 20 74 68 65 20 6f 74 68 65 72 20 77 69 6e 64 6f 77 20 77 move.focus.to.the.other.window.w
12bc0 68 65 6e 20 74 68 65 20 60 52 45 54 60 20 6b 65 79 20 69 73 20 70 72 65 73 73 65 64 3b 20 74 68 hen.the.`RET`.key.is.pressed;.th
12be0 65 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 20 69 73 20 74 6f 20 6b 65 65 70 20 66 6f e.default.behavior.is.to.keep.fo
12c00 63 75 73 20 69 6e 20 60 7a 74 72 65 65 2d 64 69 72 60 20 77 69 6e 64 6f 77 2e 0a 0a 0a 21 5b 7a cus.in.`ztree-dir`.window....![z
12c20 74 72 65 65 20 65 6d 61 63 73 61 70 70 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f tree.emacsapp](https://github.co
12c40 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 2f 72 61 77 2f 73 63 72 65 65 6e 73 68 6f 74 73 2f m/fourier/ztree/raw/screenshots/
12c60 73 63 72 65 65 6e 73 68 6f 74 73 2f 65 6d 61 63 73 5f 61 70 70 2e 70 6e 67 20 22 45 6d 61 63 73 screenshots/emacs_app.png."Emacs
12c80 20 41 70 70 20 77 69 74 68 20 7a 74 72 65 65 2d 64 69 72 22 29 0a 0a 21 5b 7a 74 72 65 65 20 65 .App.with.ztree-dir")..![ztree.e
12ca0 6d 61 63 73 78 31 31 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 macsx11](https://github.com/four
12cc0 69 65 72 2f 7a 74 72 65 65 2f 72 61 77 2f 73 63 72 65 65 6e 73 68 6f 74 73 2f 73 63 72 65 65 6e ier/ztree/raw/screenshots/screen
12ce0 73 68 6f 74 73 2f 65 6d 61 63 73 5f 78 74 65 72 6d 2e 70 6e 67 20 22 45 6d 61 63 73 20 69 6e 20 shots/emacs_xterm.png."Emacs.in.
12d00 78 74 65 72 6d 20 77 69 74 68 20 7a 74 72 65 65 2d 64 69 72 22 29 0a 0a 0a 23 23 20 43 6f 6e 74 xterm.with.ztree-dir")...##.Cont
12d20 72 69 62 75 74 69 6f 6e 73 0a 59 6f 75 20 63 61 6e 20 63 6f 6e 74 72 69 62 75 74 65 20 74 6f 20 ributions.You.can.contribute.to.
12d40 2a 2a 7a 74 72 65 65 2a 2a 20 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e **ztree**.in.one.of.the.followin
12d60 67 20 77 61 79 73 2e 0a 2d 20 53 75 62 6d 69 74 20 61 20 62 75 67 20 72 65 70 6f 72 74 0a 2d 20 g.ways..-.Submit.a.bug.report.-.
12d80 53 75 62 6d 69 74 20 61 20 66 65 61 74 75 72 65 20 72 65 71 75 65 73 74 0a 2d 20 53 75 62 6d 69 Submit.a.feature.request.-.Submi
12da0 74 20 61 20 73 69 6d 70 6c 65 20 70 75 6c 6c 20 72 65 71 75 65 73 74 20 28 77 69 74 68 20 63 68 t.a.simple.pull.request.(with.ch
12dc0 61 6e 67 65 73 20 3c 20 31 35 20 6c 69 6e 65 73 29 0a 0a 23 23 23 20 43 6f 70 79 72 69 67 68 74 anges.<.15.lines)..###.Copyright
12de0 20 69 73 73 75 65 73 0a 53 69 6e 63 65 20 2a 2a 7a 74 72 65 65 2a 2a 20 69 73 20 61 20 70 61 72 .issues.Since.**ztree**.is.a.par
12e00 74 20 6f 66 20 5b 47 4e 55 20 45 4c 50 41 5d 28 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 67 6e 75 t.of.[GNU.ELPA](https://elpa.gnu
12e20 2e 6f 72 67 2f 29 2c 20 69 74 20 69 73 20 63 6f 70 79 72 69 67 68 74 65 64 20 62 79 20 74 68 65 .org/),.it.is.copyrighted.by.the
12e40 20 5b 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e .[Free.Software.Foundation,.Inc.
12e60 5d 28 68 74 74 70 3a 2f 2f 77 77 77 2e 66 73 66 2e 6f 72 67 2f 29 2e 20 54 68 65 72 65 66 6f 72 ](http://www.fsf.org/)..Therefor
12e80 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 73 75 62 6d 69 74 20 6e 6f 6e 74 72 69 76 69 61 6c 20 e.in.order.to.submit.nontrivial.
12ea0 63 68 61 6e 67 65 73 20 28 77 69 74 68 20 74 6f 74 61 6c 20 61 6d 6f 75 6e 74 20 6f 66 20 6c 69 changes.(with.total.amount.of.li
12ec0 6e 65 73 20 3e 20 31 35 29 2c 20 6f 6e 65 20 6e 65 65 64 73 20 74 6f 20 74 6f 20 67 72 61 6e 74 nes.>.15),.one.needs.to.to.grant
12ee0 20 74 68 65 20 72 69 67 68 74 20 74 6f 20 69 6e 63 6c 75 64 65 20 79 6f 75 72 20 77 6f 72 6b 73 .the.right.to.include.your.works
12f00 20 69 6e 20 47 4e 55 20 45 6d 61 63 73 20 74 6f 20 74 68 65 20 46 53 46 2e 0a 0a 46 6f 72 20 74 .in.GNU.Emacs.to.the.FSF...For.t
12f20 68 69 73 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 63 6f 6d 70 6c 65 74 65 20 5b 74 68 69 73 5d 28 his.you.need.to.complete.[this](
12f40 68 74 74 70 73 3a 2f 2f 72 61 77 2e 67 69 74 68 75 62 75 73 65 72 63 6f 6e 74 65 6e 74 2e 63 6f https://raw.githubusercontent.co
12f60 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 2f 63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 2f 72 65 m/fourier/ztree/contributions/re
12f80 71 75 65 73 74 2d 61 73 73 69 67 6e 2e 74 78 74 29 20 66 6f 72 6d 2c 20 61 6e 64 20 73 65 6e 64 quest-assign.txt).form,.and.send
12fa0 20 69 74 20 74 6f 20 5b 61 73 73 69 67 6e 40 67 6e 75 2e 6f 72 67 5d 28 6d 61 69 6c 74 6f 3a 61 .it.to.[assign@gnu.org](mailto:a
12fc0 73 73 69 67 6e 40 67 6e 75 2e 6f 72 67 29 2e 20 54 68 65 20 46 53 46 20 77 69 6c 6c 20 73 65 6e ssign@gnu.org)..The.FSF.will.sen
12fe0 64 20 79 6f 75 20 74 68 65 20 61 73 73 69 67 6e 6d 65 6e 74 20 63 6f 6e 74 72 61 63 74 20 74 68 d.you.the.assignment.contract.th
13000 61 74 20 62 6f 74 68 20 79 6f 75 20 61 6e 64 20 74 68 65 20 46 53 46 20 77 69 6c 6c 20 73 69 67 at.both.you.and.the.FSF.will.sig
13020 6e 2e 0a 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 65 20 63 61 6e n...For.more.information.one.can
13040 20 72 65 61 64 20 5b 68 65 72 65 5d 28 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f .read.[here](http://www.gnu.org/
13060 6c 69 63 65 6e 73 65 73 2f 77 68 79 2d 61 73 73 69 67 6e 2e 68 74 6d 6c 29 20 74 6f 20 75 6e 64 licenses/why-assign.html).to.und
13080 65 72 73 74 61 6e 64 20 77 68 79 20 69 74 20 69 73 20 6e 65 65 64 65 64 2e 0a 0a 41 73 20 73 6f erstand.why.it.is.needed...As.so
130a0 6f 6e 20 61 73 20 74 68 65 20 70 61 70 65 72 77 6f 72 6b 20 69 73 20 64 6f 6e 65 20 6f 6e 65 20 on.as.the.paperwork.is.done.one.
130c0 63 61 6e 20 63 6f 6e 74 72 69 62 75 74 65 20 74 6f 20 2a 2a 7a 74 72 65 65 2a 2a 20 77 69 74 68 can.contribute.to.**ztree**.with
130e0 20 62 69 67 67 65 72 20 70 75 6c 6c 20 72 65 71 75 65 73 74 73 2e 0a 4e 6f 74 65 20 77 68 61 74 .bigger.pull.requests..Note.what
13100 20 70 75 6c 6c 20 72 65 71 75 65 73 74 73 20 77 69 74 68 6f 75 74 20 70 61 70 65 72 77 6f 72 6b .pull.requests.without.paperwork
13120 20 64 6f 6e 65 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 63 63 65 70 74 65 64 2c 20 73 6f 20 70 .done.will.not.be.accepted,.so.p
13140 6c 65 61 73 65 20 6e 6f 74 69 66 79 20 74 68 65 20 5b 6d 61 69 6e 74 61 69 6e 65 72 5d 28 6d 61 lease.notify.the.[maintainer](ma
13160 69 6c 74 6f 3a 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 ilto:alexey.veretennikov@gmail.c
13180 6f 6d 29 20 69 66 20 65 76 65 72 79 74 68 69 6e 67 20 69 73 20 69 6e 20 70 6c 61 63 65 2e 0a 0a om).if.everything.is.in.place...
131a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13200 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 64 69 72 2e 65 6c 00 00 00 00 00 00 00 00 ztree-1.0.6/ztree-dir.el........
13220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13260 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
13280 30 30 31 37 33 30 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 34 31 00 20 30 00 00 00 0017303.00000000000.013541..0...
132a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
132c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
132e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13300 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...................
13320 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...................
13340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
133a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
133c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
133e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13400 3b 3b 3b 20 7a 74 72 65 65 2d 64 69 72 2e 65 6c 20 2d 2d 2d 20 54 65 78 74 20 6d 6f 64 65 20 64 ;;;.ztree-dir.el.---.Text.mode.d
13420 69 72 65 63 74 6f 72 79 20 74 72 65 65 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e irectory.tree.-*-.lexical-bindin
13440 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 29 20 32 30 31 33 g:.t;.-*-..;;.Copyright.(C).2013
13460 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c -2021..Free.Software.Foundation,
13480 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 41 6c 65 78 65 79 20 56 65 72 65 74 .Inc..;;.;;.Author:.Alexey.Veret
134a0 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 ennikov.<alexey.veretennikov@gma
134c0 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 32 30 31 33 2d 31 31 2d 31 il.com>.;;.;;.Created:.2013-11-1
134e0 31 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 6c 65 73 20 74 6f 6f 6c 73 0a 3b 3b 1.;;.;;.Keywords:.files.tools.;;
13500 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 .URL:.https://github.com/fourier
13520 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3a 20 47 4e 55 20 45 6d 61 /ztree.;;.Compatibility:.GNU.Ema
13540 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 cs.24.x.;;.;;.This.file.is.part.
13560 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 73 20 69 73 of.GNU.Emacs..;;.;;.GNU.Emacs.is
13580 20 66 72 65 65 20 73 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 .free.software:.you.can.redistri
135a0 62 75 74 65 20 69 74 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 bute.it.and/or.modify.;;.it.unde
135c0 72 20 74 68 65 20 74 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 r.the.terms.of.the.GNU.General.P
135e0 75 62 6c 69 63 20 4c 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 ublic.License.as.published.by.;;
13600 20 74 68 65 20 46 72 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 .the.Free.Software.Foundation,.e
13620 69 74 68 65 72 20 76 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 ither.version.3.of.the.License,.
13640 6f 72 0a 3b 3b 20 28 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 or.;;.(at.your.option).any.later
13660 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 73 20 69 73 20 64 69 73 .version..;;.;;.GNU.Emacs.is.dis
13680 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 77 69 6c tributed.in.the.hope.that.it.wil
136a0 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 4e 59 20 l.be.useful,.;;.but.WITHOUT.ANY.
136c0 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 70 6c 69 WARRANTY;.without.even.the.impli
136e0 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 4c 49 54 ed.warranty.of.;;.MERCHANTABILIT
13700 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 20 50 55 Y.or.FITNESS.FOR.A.PARTICULAR.PU
13720 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 6c 20 50 RPOSE...See.the.;;.GNU.General.P
13740 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 73 2e 0a ublic.License.for.more.details..
13760 3b 3b 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 61 ;;.;;.You.should.have.received.a
13780 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 20 .copy.of.the.GNU.General.Public.
137a0 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 2e License.;;.along.with.GNU.Emacs.
137c0 20 20 49 66 20 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 ..If.not,.see.<http://www.gnu.or
137e0 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a g/licenses/>..;;.;;;.Commentary:
13800 0a 3b 3b 0a 3b 3b 20 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 .;;.;;.Add.the.following.to.your
13820 20 2e 65 6d 61 63 73 20 66 69 6c 65 3a 0a 3b 3b 0a 3b 3b 20 28 70 75 73 68 20 28 73 75 62 73 74 ..emacs.file:.;;.;;.(push.(subst
13840 69 74 75 74 65 2d 69 6e 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 70 61 74 68 2d 74 6f 2d 7a 74 72 65 itute-in-file-name."path-to-ztre
13860 65 2d 64 69 72 65 63 74 6f 72 79 22 29 20 6c 6f 61 64 2d 70 61 74 68 29 0a 3b 3b 20 28 72 65 71 e-directory").load-path).;;.(req
13880 75 69 72 65 20 27 7a 74 72 65 65 2d 64 69 72 29 0a 3b 3b 0a 3b 3b 20 43 61 6c 6c 20 74 68 65 20 uire.'ztree-dir).;;.;;.Call.the.
138a0 7a 74 72 65 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 3a 0a 3b 3b 20 4d ztree.interactive.function:.;;.M
138c0 2d 78 20 7a 74 72 65 65 2d 64 69 72 0a 3b 3b 20 4f 70 65 6e 2f 63 6c 6f 73 65 20 64 69 72 65 63 -x.ztree-dir.;;.Open/close.direc
138e0 74 6f 72 69 65 73 20 77 69 74 68 20 64 6f 75 62 6c 65 2d 63 6c 69 63 6b 2c 20 45 6e 74 65 72 20 tories.with.double-click,.Enter.
13900 6f 72 20 53 70 61 63 65 20 6b 65 79 73 0a 3b 3b 0a 3b 3b 3b 20 49 73 73 75 65 73 3a 0a 3b 3b 0a or.Space.keys.;;.;;;.Issues:.;;.
13920 3b 3b 3b 20 54 4f 44 4f 3a 0a 3b 3b 20 31 29 20 41 64 64 20 73 6f 6d 65 20 66 69 6c 65 2d 68 61 ;;;.TODO:.;;.1).Add.some.file-ha
13940 6e 64 6c 69 6e 67 20 61 6e 64 20 6d 61 72 6b 69 6e 67 20 61 62 69 6c 69 74 69 65 73 0a 3b 3b 0a ndling.and.marking.abilities.;;.
13960 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 75 74 69 6c 29 ;;;.Code:..(require.'ztree-util)
13980 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 76 69 65 77 29 0a 28 72 65 71 75 69 72 65 20 .(require.'ztree-view).(require.
139a0 27 7a 74 72 65 65 2d 70 72 6f 74 6f 63 6f 6c 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 'ztree-protocol).(eval-when-comp
139c0 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 0a 3b 3b 0a 3b 3b 20 43 6f ile.(require.'cl-lib))..;;.;;.Co
139e0 6e 73 74 61 6e 74 73 0a 3b 3b 0a 0a 28 64 65 66 63 6f 6e 73 74 20 7a 74 72 65 65 2d 68 69 64 64 nstants.;;..(defconst.ztree-hidd
13a00 65 6e 2d 66 69 6c 65 73 2d 72 65 67 65 78 70 20 22 5e 5c 5c 2e 22 0a 20 20 22 48 69 64 64 65 6e en-files-regexp."^\\."..."Hidden
13a20 20 66 69 6c 65 73 20 72 65 67 65 78 70 2e 0a 42 79 20 64 65 66 61 75 6c 74 20 61 6c 6c 20 66 69 .files.regexp..By.default.all.fi
13a40 6c 65 73 74 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 6f 74 20 60 2e 27 2c 20 69 6e 63 6c lest.starting.with.dot.`.',.incl
13a60 75 64 69 6e 67 20 2e 20 61 6e 64 20 2e 2e 22 29 0a 0a 3b 3b 0a 3b 3b 20 43 6f 6e 66 69 67 75 72 uding...and...")..;;.;;.Configur
13a80 61 62 6c 65 20 76 61 72 69 61 62 6c 65 73 0a 3b 3b 0a 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 able.variables.;;..(defvar.ztree
13aa0 2d 64 69 72 2d 6d 6f 76 65 2d 66 6f 63 75 73 20 6e 69 6c 0a 20 20 22 44 65 66 69 6e 65 73 20 69 -dir-move-focus.nil..."Defines.i
13ac0 66 20 6d 6f 76 65 20 66 6f 63 75 73 20 74 6f 20 6f 70 65 6e 65 64 20 77 69 6e 64 6f 77 20 6f 6e f.move.focus.to.opened.window.on
13ae0 20 68 61 72 64 2d 61 63 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 20 28 52 45 54 55 52 4e 29 20 6f 6e .hard-action.command.(RETURN).on
13b00 20 61 20 66 69 6c 65 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d .a.file.")..(defvar-local.ztree-
13b20 64 69 72 2d 66 69 6c 74 65 72 2d 6c 69 73 74 20 28 6c 69 73 74 20 7a 74 72 65 65 2d 68 69 64 64 dir-filter-list.(list.ztree-hidd
13b40 65 6e 2d 66 69 6c 65 73 2d 72 65 67 65 78 70 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 72 65 67 65 en-files-regexp)..."List.of.rege
13b60 78 70 20 66 69 6c 65 20 6e 61 6d 65 73 20 74 6f 20 66 69 6c 74 65 72 20 6f 75 74 2e 0a 42 79 20 xp.file.names.to.filter.out..By.
13b80 64 65 66 61 75 6c 74 20 70 61 74 68 73 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 6f 74 20 default.paths.starting.with.dot.
13ba0 28 6c 69 6b 65 20 2e 67 69 74 29 20 61 72 65 20 69 67 6e 6f 72 65 64 2e 0a 4f 6e 65 20 63 6f 75 (like..git).are.ignored..One.cou
13bc0 6c 64 20 61 64 64 20 6f 77 6e 20 66 69 6c 74 65 72 73 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 ld.add.own.filters.in.the.follow
13be0 69 6e 67 20 77 61 79 3a 0a 0a 28 73 65 74 71 2d 64 65 66 61 75 6c 74 20 7a 74 72 65 65 2d 64 69 ing.way:..(setq-default.ztree-di
13c00 72 2d 66 69 6c 74 65 72 2d 6c 69 73 74 20 28 63 6f 6e 73 20 5c 22 5e 2e 2a 5c 5c 2e 70 79 63 5c r-filter-list.(cons.\"^.*\\.pyc\
13c20 22 20 7a 74 72 65 65 2d 64 69 72 2d 66 69 6c 74 65 72 2d 6c 69 73 74 29 29 0a 22 29 0a 0a 28 64 ".ztree-dir-filter-list)).")..(d
13c40 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 72 2d 73 68 6f 77 2d 66 69 6c 74 65 efvar-local.ztree-dir-show-filte
13c60 72 65 64 2d 66 69 6c 65 73 20 6e 69 6c 0a 20 20 22 53 68 6f 77 20 6f 72 20 6e 6f 74 20 66 69 6c red-files.nil..."Show.or.not.fil
13c80 65 73 20 66 72 6f 6d 20 74 68 65 20 66 69 6c 74 65 72 65 64 20 6c 69 73 74 2e 22 29 0a 0a 0a 3b es.from.the.filtered.list.")...;
13ca0 3b 0a 3b 3b 20 46 61 63 65 73 0a 3b 3b 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 68 ;.;;.Faces.;;..(defface.ztreep-h
13cc0 65 61 64 65 72 2d 66 61 63 65 0a 20 20 27 28 28 28 28 74 79 70 65 20 74 74 79 20 70 63 29 20 28 eader-face...'((((type.tty.pc).(
13ce0 63 6c 61 73 73 20 63 6f 6c 6f 72 29 29 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 class.color)).:foreground."light
13d00 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 0a 20 20 20 20 28 28 28 62 61 63 6b 67 blue".:weight.bold).....(((backg
13d20 72 6f 75 6e 64 20 64 61 72 6b 29 29 20 28 3a 68 65 69 67 68 74 20 31 2e 32 20 3a 66 6f 72 65 67 round.dark)).(:height.1.2.:foreg
13d40 72 6f 75 6e 64 20 22 6c 69 67 68 74 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 29 round."lightblue".:weight.bold))
13d60 0a 20 20 20 20 28 74 20 3a 68 65 69 67 68 74 20 31 2e 32 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 .....(t.:height.1.2.:foreground.
13d80 22 64 61 72 6b 62 6c 75 65 22 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 29 29 0a 20 20 22 2a 46 61 "darkblue".:weight.bold))..."*Fa
13da0 63 65 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 20 5a 74 72 65 65 20 ce.used.for.the.header.in.Ztree.
13dc0 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 20 3a 67 72 6f 75 70 20 buffer."...:group.'Ztree.:group.
13de0 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 'font-lock-highlighting-faces).(
13e00 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 68 65 61 64 65 72 2d 66 61 63 65 20 27 7a 74 72 65 65 defvar.ztreep-header-face.'ztree
13e20 70 2d 68 65 61 64 65 72 2d 66 61 63 65 29 0a 0a 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d p-header-face)...(define-minor-m
13e40 6f 64 65 20 7a 74 72 65 65 64 69 72 2d 6d 6f 64 65 0a 20 20 22 41 20 6d 69 6e 6f 72 20 6d 6f 64 ode.ztreedir-mode..."A.minor.mod
13e60 65 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 e.for.displaying.the.directory.t
13e80 72 65 65 73 20 69 6e 20 74 65 78 74 20 6d 6f 64 65 2e 22 0a 20 20 3b 3b 20 69 6e 69 74 69 61 6c rees.in.text.mode."...;;.initial
13ea0 20 76 61 6c 75 65 0a 20 20 6e 69 6c 0a 20 20 3b 3b 20 6d 6f 64 65 6c 69 6e 65 20 6e 61 6d 65 0a .value...nil...;;.modeline.name.
13ec0 20 20 22 20 44 69 72 22 0a 20 20 3b 3b 20 54 68 65 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 6b 65 79 ..".Dir"...;;.The.minor.mode.key
13ee0 6d 61 70 0a 20 20 60 28 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 48 22 29 20 2e 20 7a 74 72 65 65 map...`(.....(,(kbd."H")...ztree
13f00 2d 64 69 72 2d 74 6f 67 67 6c 65 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 29 -dir-toggle-show-filtered-files)
13f20 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 3e 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 72 2d 6e 61 72 .....(,(kbd.">")...ztree-dir-nar
13f40 72 6f 77 2d 74 6f 2d 64 69 72 29 0a 20 20 20 20 28 2c 28 6b 62 64 20 22 3c 22 29 20 2e 20 7a 74 row-to-dir).....(,(kbd."<")...zt
13f60 72 65 65 2d 64 69 72 2d 77 69 64 65 6e 2d 74 6f 2d 70 61 72 65 6e 74 29 0a 20 20 20 20 28 2c 28 ree-dir-widen-to-parent).....(,(
13f80 6b 62 64 20 22 64 22 29 20 2e 20 7a 74 72 65 65 2d 64 69 72 2d 6f 70 65 6e 2d 64 69 72 65 64 2d kbd."d")...ztree-dir-open-dired-
13fa0 61 74 2d 70 6f 69 6e 74 29 29 29 0a 0a 0a 0a 0a 3b 3b 0a 3b 3b 20 46 69 6c 65 20 62 69 6e 64 69 at-point))).....;;.;;.File.bindi
13fc0 6e 67 73 20 74 6f 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 20 63 6f 6e 74 72 6f ngs.to.the.directory.tree.contro
13fe0 6c 0a 3b 3b 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 l.;;..(defun.ztree-insert-buffer
14000 2d 68 65 61 64 65 72 20 28 29 0a 20 20 22 49 6e 73 65 72 74 20 74 68 65 20 68 65 61 64 65 72 20 -header.()..."Insert.the.header.
14020 74 6f 20 74 68 65 20 7a 74 72 65 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 to.the.ztree.buffer."...(let.((s
14040 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 44 69 72 65 tart.(point))).....(insert."Dire
14060 63 74 6f 72 79 20 74 72 65 65 22 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 ctory.tree").....(insert."\n")..
14080 20 20 20 28 69 6e 73 65 72 74 20 22 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 22 29 0a 20 20 20 ...(insert."==============")....
140a0 20 28 73 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 73 74 61 72 74 20 28 70 6f 69 .(set-text-properties.start.(poi
140c0 6e 74 29 20 27 28 66 61 63 65 20 7a 74 72 65 65 70 2d 68 65 61 64 65 72 2d 66 61 63 65 29 29 29 nt).'(face.ztreep-header-face)))
140e0 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d ...(insert."\n"))..(defun.ztree-
14100 66 69 6c 65 2d 6e 6f 74 2d 68 69 64 64 65 6e 20 28 66 69 6c 65 6e 61 6d 65 29 0a 20 20 22 44 65 file-not-hidden.(filename)..."De
14120 74 65 72 6d 69 6e 65 73 20 69 66 20 74 68 65 20 66 69 6c 65 20 77 69 74 68 20 46 49 4c 45 4e 41 termines.if.the.file.with.FILENA
14140 4d 45 20 73 68 6f 75 6c 64 20 62 65 20 76 69 73 69 62 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 ME.should.be.visible."...(let.((
14160 6e 61 6d 65 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 66 69 6c 65 name.(ztree-file-short-name.file
14180 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 61 6e 64 20 28 6e 6f 74 20 28 6f 72 20 28 73 74 72 69 6e name))).....(and.(not.(or.(strin
141a0 67 3d 20 6e 61 6d 65 20 22 2e 22 29 20 28 73 74 72 69 6e 67 3d 20 6e 61 6d 65 20 22 2e 2e 22 29 g=.name.".").(string=.name."..")
141c0 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d ))..........(or...........ztree-
141e0 64 69 72 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 dir-show-filtered-files.........
14200 20 20 28 6e 6f 74 20 28 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 72 78 29 20 ..(not.(cl-find-if.(lambda.(rx).
14220 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 72 78 20 6e 61 6d 65 29 29 20 7a 74 72 65 65 2d 64 69 (string-match.rx.name)).ztree-di
14240 72 2d 66 69 6c 74 65 72 2d 6c 69 73 74 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 r-filter-list))))))...(defun.ztr
14260 65 65 2d 66 69 6e 64 2d 66 69 6c 65 20 28 6e 6f 64 65 20 68 61 72 64 29 0a 20 20 22 46 69 6e 64 ee-find-file.(node.hard)..."Find
14280 20 74 68 65 20 66 69 6c 65 20 61 74 20 4e 4f 44 45 2e 0a 0a 49 66 20 48 41 52 44 20 69 73 20 6e .the.file.at.NODE...If.HARD.is.n
142a0 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 66 69 6c 65 20 69 73 20 6f 70 65 6e 65 64 20 69 6e 20 61 6e on-nil,.the.file.is.opened.in.an
142c0 6f 74 68 65 72 20 77 69 6e 64 6f 77 2e 0a 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 7a 74 72 other.window..Otherwise,.the.ztr
142e0 65 65 20 77 69 6e 64 6f 77 20 69 73 20 75 73 65 64 20 74 6f 20 66 69 6e 64 20 74 68 65 20 66 69 ee.window.is.used.to.find.the.fi
14300 6c 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 6e 6f 64 65 29 le."...(when.(and.(stringp.node)
14320 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 63 6f .(file-readable-p.node)).....(co
14340 6e 64 20 28 28 61 6e 64 20 68 61 72 64 20 7a 74 72 65 65 2d 64 69 72 2d 6d 6f 76 65 2d 66 6f 63 nd.((and.hard.ztree-dir-move-foc
14360 75 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d us)............(find-file-other-
14380 77 69 6e 64 6f 77 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 61 72 64 0a 20 20 window.node))...........(hard...
143a0 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 28 .........(save-selected-window.(
143c0 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 6e 6f 64 65 29 29 29 0a 20 find-file-other-window.node)))..
143e0 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c .........(t............(find-fil
14400 65 20 6e 6f 64 65 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 72 2d 74 e.node)))))...(defun.ztree-dir-t
14420 6f 67 67 6c 65 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 20 28 29 0a 20 20 22 oggle-show-filtered-files.()..."
14440 54 6f 67 67 6c 65 20 76 69 73 69 62 69 6c 69 74 79 20 6f 66 20 74 68 65 20 66 69 6c 74 65 72 65 Toggle.visibility.of.the.filtere
14460 64 20 66 69 6c 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 d.files."...(interactive)...(set
14480 71 20 7a 74 72 65 65 2d 64 69 72 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 20 q.ztree-dir-show-filtered-files.
144a0 28 6e 6f 74 20 7a 74 72 65 65 2d 64 69 72 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c (not.ztree-dir-show-filtered-fil
144c0 65 73 29 29 0a 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 28 69 66 20 7a 74 72 65 es))...(message.(concat.(if.ztre
144e0 65 2d 64 69 72 2d 73 68 6f 77 2d 66 69 6c 74 65 72 65 64 2d 66 69 6c 65 73 20 22 53 68 6f 77 22 e-dir-show-filtered-files."Show"
14500 20 22 48 69 64 65 22 29 20 22 20 66 69 6c 74 65 72 65 64 20 66 69 6c 65 73 22 29 29 0a 20 20 28 ."Hide").".filtered.files"))...(
14520 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 29 0a 0a 0a 28 64 65 66 75 6e 20 ztree-refresh-buffer))...(defun.
14540 7a 74 72 65 65 2d 64 69 72 2d 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 28 70 61 74 68 29 ztree-dir-directory-files.(path)
14560 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 2f 64 69 72 ..."Return.the.list.of.files/dir
14580 65 63 74 6f 72 69 65 73 20 66 6f 72 20 74 68 65 20 67 69 76 65 6e 20 50 41 54 48 2e 22 0a 20 20 ectories.for.the.given.PATH."...
145a0 3b 3b 20 72 65 6d 6f 76 65 20 2e 20 61 6e 64 20 2e 2e 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 ;;.remove...and....from.the.list
145c0 20 6f 66 20 66 69 6c 65 73 20 74 6f 20 61 76 6f 69 64 20 69 6e 66 69 6e 69 74 65 0a 20 20 3b 3b .of.files.to.avoid.infinite...;;
145e0 20 72 65 63 75 72 73 69 6f 6e 0a 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 28 6c 61 6d 62 .recursion...(cl-remove-if.(lamb
14600 64 61 20 28 78 29 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 2f 5c 5c 2e 5c 5c 2e 3f da.(x).(string-match-p."/\\.\\.?
14620 24 22 20 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 6f 72 $".x)).................(director
14640 79 2d 66 69 6c 65 73 20 70 61 74 68 20 27 66 75 6c 6c 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a y-files.path.'full)))...(defun.z
14660 74 72 65 65 2d 64 69 72 2d 63 68 61 6e 67 65 2d 64 69 72 65 63 74 6f 72 79 20 28 6e 6f 64 65 29 tree-dir-change-directory.(node)
14680 0a 20 20 22 43 68 61 6e 67 65 20 74 68 65 20 73 74 61 72 74 20 6e 6f 64 65 20 74 6f 20 4e 4f 44 ..."Change.the.start.node.to.NOD
146a0 45 20 61 6e 64 20 75 70 64 61 74 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 22 E.and.update.current.directory."
146c0 0a 20 20 28 7a 74 72 65 65 2d 63 68 61 6e 67 65 2d 73 74 61 72 74 2d 6e 6f 64 65 20 6e 6f 64 65 ...(ztree-change-start-node.node
146e0 29 0a 20 20 28 73 65 74 71 20 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 )...(setq.default-directory.node
14700 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 72 2d 6e 61 72 72 6f 77 2d 74 6f 2d ))...(defun.ztree-dir-narrow-to-
14720 64 69 72 20 28 29 0a 20 20 22 49 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6d 6d 61 6e 64 20 74 6f dir.()..."Interactive.command.to
14740 20 6e 61 72 72 6f 77 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 62 75 .narrow.the.current.directory.bu
14760 66 66 65 72 2e 0a 54 68 65 20 62 75 66 66 65 72 20 69 73 20 6e 61 72 72 6f 77 65 64 20 74 6f 20 ffer..The.buffer.is.narrowed.to.
14780 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 73 6f 72 2e 0a the.directory.under.the.cursor..
147a0 49 66 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 6f 6e 20 61 20 66 69 6c 65 2c 20 74 68 65 20 If.the.cursor.is.on.a.file,.the.
147c0 62 75 66 66 65 72 20 69 73 20 6e 61 72 72 6f 77 65 64 20 74 6f 20 74 68 65 20 70 61 72 65 6e 74 buffer.is.narrowed.to.the.parent
147e0 20 64 69 72 65 63 74 6f 72 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 .directory."...(interactive)...(
14800 6c 65 74 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 let*.((line.(line-number-at-pos)
14820 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 )..........(node.(ztree-find-nod
14840 65 2d 69 6e 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e e-in-line.line))..........(paren
14860 74 20 28 7a 74 72 65 65 2d 67 65 74 2d 70 61 72 65 6e 74 2d 66 6f 72 2d 6c 69 6e 65 20 6c 69 6e t.(ztree-get-parent-for-line.lin
14880 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 6e e))).....(if.(file-directory-p.n
148a0 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 72 2d 63 68 61 6e 67 65 2d 64 ode).........(ztree-dir-change-d
148c0 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 70 61 72 65 6e irectory.node).......(when.paren
148e0 74 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 72 2d 63 68 61 6e 67 65 2d 64 69 72 65 t.........(ztree-dir-change-dire
14900 63 74 6f 72 79 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 70 ctory.(ztree-find-node-in-line.p
14920 61 72 65 6e 74 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 72 2d 77 arent))))))...(defun.ztree-dir-w
14940 69 64 65 6e 2d 74 6f 2d 70 61 72 65 6e 74 20 28 29 0a 20 20 22 49 6e 74 65 72 61 63 74 69 76 65 iden-to-parent.()..."Interactive
14960 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 77 69 64 65 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 .command.to.widen.the.current.di
14980 72 65 63 74 6f 72 79 20 62 75 66 66 65 72 20 74 6f 20 70 61 72 65 6e 74 2e 0a 54 68 65 20 62 75 rectory.buffer.to.parent..The.bu
149a0 66 66 65 72 20 69 73 20 77 69 64 65 6e 65 64 20 74 6f 20 74 68 65 20 70 61 72 65 6e 74 20 6f 66 ffer.is.widened.to.the.parent.of
149c0 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 .the.directory.of.the.current.bu
149e0 66 66 65 72 2e 0a 54 68 69 73 20 61 6c 6c 6f 77 73 20 74 6f 20 6a 75 6d 70 20 74 6f 20 74 68 65 ffer..This.allows.to.jump.to.the
14a00 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 69 66 20 74 68 69 73 20 64 69 72 65 63 74 .parent.directory.if.this.direct
14a20 6f 72 79 20 69 73 20 6f 6e 65 20 6c 65 76 65 6c 0a 75 70 20 6f 66 20 74 68 65 20 6f 70 65 6e 65 ory.is.one.level.up.of.the.opene
14a40 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f d."...(interactive)...(let*.((no
14a60 64 65 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 28 70 de.ztree-start-node)..........(p
14a80 61 72 65 6e 74 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 28 64 69 72 65 arent.(file-name-directory.(dire
14aa0 63 74 6f 72 79 2d 66 69 6c 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 28 77 68 ctory-file-name.node)))).....(wh
14ac0 65 6e 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 72 2d 63 68 61 6e 67 en.parent.......(ztree-dir-chang
14ae0 65 2d 64 69 72 65 63 74 6f 72 79 20 70 61 72 65 6e 74 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 e-directory.parent))))...(defun.
14b00 7a 74 72 65 65 2d 64 69 72 2d 6f 70 65 6e 2d 64 69 72 65 64 2d 61 74 2d 70 6f 69 6e 74 20 28 29 ztree-dir-open-dired-at-point.()
14b20 0a 20 20 22 49 66 20 74 68 65 20 70 6f 69 6e 74 20 69 73 20 6f 6e 20 61 20 64 69 72 65 63 74 6f ..."If.the.point.is.on.a.directo
14b40 72 79 2c 20 6f 70 65 6e 20 44 49 52 45 44 20 77 69 74 68 20 74 68 69 73 20 64 69 72 65 63 74 6f ry,.open.DIRED.with.this.directo
14b60 72 79 2e 0a 4f 74 68 65 72 77 69 73 65 20 6f 70 65 6e 20 44 49 52 45 44 20 77 69 74 68 20 74 68 ry..Otherwise.open.DIRED.with.th
14b80 65 20 70 61 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 e.parent.directory"...(interacti
14ba0 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d ve)...(let*.((line.(line-number-
14bc0 61 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 66 at-pos))..........(node.(ztree-f
14be0 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 ind-node-in-line.line)).........
14c00 20 28 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 67 65 74 2d 70 61 72 65 6e 74 2d 66 6f 72 2d 6c .(parent.(ztree-get-parent-for-l
14c20 69 6e 65 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 61 6e 64 20 6e 6f 64 65 ine.line))).....(cond.((and.node
14c40 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 .(file-directory-p.node)).......
14c60 20 20 20 20 20 28 64 69 72 65 64 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 61 .....(dired.node))...........(pa
14c80 72 65 6e 74 20 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 65 64 20 28 7a 74 72 65 65 2d 66 rent.............(dired.(ztree-f
14ca0 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 70 61 72 65 6e 74 29 29 29 29 29 29 0a 0a 3b ind-node-in-line.parent))))))..;
14cc0 3b 0a 3b 3b 20 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 7a 74 72 65 65 ;.;;.Implementation.of.the.ztree
14ce0 2d 70 72 6f 74 6f 63 6f 6c 0a 3b 3b 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 -protocol.;;..(cl-defmethod.ztre
14d00 65 2d 6e 6f 64 65 2d 76 69 73 69 62 6c 65 2d 70 20 28 28 66 69 6c 65 20 73 74 72 69 6e 67 29 29 e-node-visible-p.((file.string))
14d20 0a 20 20 22 52 65 74 75 72 6e 20 54 20 69 66 20 74 68 65 20 4e 4f 44 45 20 73 68 61 6c 6c 20 62 ..."Return.T.if.the.NODE.shall.b
14d40 65 20 76 69 73 69 62 6c 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 6e 6f 74 2d 68 69 e.visible."...(ztree-file-not-hi
14d60 64 64 65 6e 20 66 69 6c 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 dden.file))..(cl-defmethod.ztree
14d80 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 28 66 69 6c 65 20 73 74 72 69 6e 67 29 29 -node-short-name.((file.string))
14da0 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 68 6f 72 74 20 6e 61 6d 65 20 66 6f 72 20 61 20 ..."Return.the.short.name.for.a.
14dc0 6e 6f 64 65 2e 22 0a 20 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 node."...(ztree-file-short-name.
14de0 66 69 6c 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 file))..(cl-defmethod.ztree-node
14e00 2d 65 78 70 61 6e 64 61 62 6c 65 2d 70 20 28 28 66 69 6c 65 20 73 74 72 69 6e 67 29 29 0a 20 20 -expandable-p.((file.string))...
14e20 22 52 65 74 75 72 6e 20 54 20 69 66 20 74 68 65 20 6e 6f 64 65 20 69 73 20 65 78 70 61 6e 64 61 "Return.T.if.the.node.is.expanda
14e40 62 6c 65 2e 22 0a 20 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 29 ble."...(file-directory-p.file))
14e60 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 71 75 61 6c ..(cl-defmethod.ztree-node-equal
14e80 20 28 28 66 69 6c 65 31 20 73 74 72 69 6e 67 29 20 28 66 69 6c 65 32 20 73 74 72 69 6e 67 29 29 .((file1.string).(file2.string))
14ea0 0a 20 20 22 45 71 75 61 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 4e 4f 44 45 31 20 ..."Equality.function.for.NODE1.
14ec0 61 6e 64 20 4e 4f 44 45 32 2e 0a 52 65 74 75 72 6e 20 54 20 69 66 20 6e 6f 64 65 73 20 61 72 65 and.NODE2..Return.T.if.nodes.are
14ee0 20 65 71 75 61 6c 22 0a 20 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 66 69 6c 65 31 20 66 69 .equal"...(string-equal.file1.fi
14f00 6c 65 32 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d le2))..(cl-defmethod.ztree-node-
14f20 63 68 69 6c 64 72 65 6e 20 28 28 66 69 6c 65 20 73 74 72 69 6e 67 29 29 0a 20 20 22 52 65 74 75 children.((file.string))..."Retu
14f40 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 4e 4f 44 45 20 63 68 69 6c 64 72 65 6e 22 0a 20 20 28 7a rn.a.list.of.NODE.children"...(z
14f60 74 72 65 65 2d 64 69 72 2d 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 66 69 6c 65 29 29 0a tree-dir-directory-files.file)).
14f80 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 61 63 74 69 6f 6e .(cl-defmethod.ztree-node-action
14fa0 20 28 28 66 69 6c 65 20 73 74 72 69 6e 67 29 20 68 61 72 64 29 0a 20 20 22 50 65 72 66 6f 72 6d .((file.string).hard)..."Perform
14fc0 20 61 6e 20 61 63 74 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 52 65 74 75 72 6e 20 69 73 20 70 72 .an.action.when.the.Return.is.pr
14fe0 65 73 73 65 64 20 6f 6e 20 61 20 4e 4f 44 45 2e 22 0a 20 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d essed.on.a.NODE."...(ztree-find-
15000 66 69 6c 65 20 66 69 6c 65 20 68 61 72 64 29 29 0a 0a 3b 3b 20 66 6f 72 20 7a 74 72 65 65 2d 6e file.file.hard))..;;.for.ztree-n
15020 6f 64 65 2d 73 69 64 65 2c 20 7a 74 72 65 65 2d 6e 6f 64 65 2d 66 61 63 65 2c 20 7a 74 72 65 65 ode-side,.ztree-node-face,.ztree
15040 2d 6e 6f 64 65 2d 6c 65 66 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 0a 3b 3b 20 61 6e 64 20 7a 74 72 -node-left-short-name.;;.and.ztr
15060 65 65 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 75 73 65 20 64 65 66 ee-node-right-short-name.use.def
15080 61 75 6c 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 0a 0a 3b 3b 0a 3b 3b 20 45 6e 74 72 ault.implementations..;;.;;.Entr
150a0 79 20 70 6f 69 6e 74 0a 3b 3b 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 y.point.;;..;;;###autoload.(defu
150c0 6e 20 7a 74 72 65 65 2d 64 69 72 20 28 70 61 74 68 29 0a 20 20 22 43 72 65 61 74 65 20 61 6e 20 n.ztree-dir.(path)..."Create.an.
150e0 69 6e 74 65 72 61 63 74 69 76 65 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 64 69 72 65 interactive.buffer.with.the.dire
15100 63 74 6f 72 79 20 74 72 65 65 20 6f 66 20 74 68 65 20 50 41 54 48 20 67 69 76 65 6e 2e 22 0a 20 ctory.tree.of.the.PATH.given."..
15120 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 44 44 69 72 65 63 74 6f 72 79 3a 20 22 29 0a 20 20 .(interactive."DDirectory:.")...
15140 28 77 68 65 6e 20 28 61 6e 64 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 70 61 74 68 29 20 (when.(and.(file-exists-p.path).
15160 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 70 61 74 68 29 29 0a 20 20 20 20 28 6c 65 (file-directory-p.path)).....(le
15180 74 20 28 28 62 75 66 2d 6e 61 6d 65 20 28 63 6f 6e 63 61 74 20 22 2a 44 69 72 65 63 74 6f 72 79 t.((buf-name.(concat."*Directory
151a0 20 22 20 70 61 74 68 20 22 20 74 72 65 65 2a 22 29 29 29 0a 20 20 20 20 20 20 28 7a 74 72 65 65 .".path.".tree*"))).......(ztree
151c0 2d 76 69 65 77 20 62 75 66 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -view.buf-name..................
151e0 20 23 27 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 68 65 61 64 65 72 20 20 20 .#'ztree-insert-buffer-header...
15200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15220 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 73 75 62 73 74 69 74 75 74 65 2d ..(expand-file-name.(substitute-
15240 69 6e 2d 66 69 6c 65 2d 6e 61 6d 65 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 in-file-name.path)).............
15260 20 20 20 20 20 20 23 27 7a 74 72 65 65 64 69 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 ......#'ztreedir-mode...........
15280 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 29 0a 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 7a 74 72 ........nil))))....(provide.'ztr
152a0 65 65 2d 64 69 72 29 0a 3b 3b 3b 20 7a 74 72 65 65 2d 64 69 72 2e 65 6c 20 65 6e 64 73 20 68 65 ee-dir).;;;.ztree-dir.el.ends.he
152c0 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 00 00 re..............................
152e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15400 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2e 65 6c 00 ztree-1.0.6/ztree-diff-model.el.
15420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15460 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
15480 30 30 34 31 33 33 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 37 31 00 20 30 00 00 00 0041333.00000000000.014771..0...
154a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
154c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
154e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15500 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...................
15520 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...................
15540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15600 3b 3b 3b 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2e 65 6c 20 2d 2d 2d 20 64 69 66 66 ;;;.ztree-diff-model.el.---.diff
15620 20 6d 6f 64 65 6c 20 66 6f 72 20 64 69 72 65 63 74 6f 72 79 20 74 72 65 65 73 20 2d 2a 2d 20 6c .model.for.directory.trees.-*-.l
15640 65 78 69 63 61 6c 2d 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 exical-binding:.t;.-*-..;;.Copyr
15660 69 67 68 74 20 28 43 29 20 32 30 31 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 ight.(C).2013-2021..Free.Softwar
15680 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a e.Foundation,.Inc..;;.;;.Author:
156a0 20 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 .Alexey.Veretennikov.<alexey.ver
156c0 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 etennikov@gmail.com>.;;.;;.Creat
156e0 65 64 3a 20 32 30 31 33 2d 31 31 2d 31 31 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 ed:.2013-11-11.;;.;;.Keywords:.f
15700 69 6c 65 73 20 74 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 iles.tools.;;.URL:.https://githu
15720 62 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 b.com/fourier/ztree.;;.Compatibi
15740 6c 69 74 79 3a 20 47 4e 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 lity:.GNU.Emacs.24.x.;;.;;.This.
15760 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b file.is.part.of.GNU.Emacs..;;.;;
15780 20 47 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 .GNU.Emacs.is.free.software:.you
157a0 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 6f 72 20 6d 6f 64 69 .can.redistribute.it.and/or.modi
157c0 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 6f 66 20 74 68 65 20 fy.;;.it.under.the.terms.of.the.
157e0 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 20 61 73 20 70 75 GNU.General.Public.License.as.pu
15800 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 66 74 77 61 72 65 20 blished.by.;;.the.Free.Software.
15820 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 Foundation,.either.version.3.of.
15840 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 the.License,.or.;;.(at.your.opti
15860 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 on).any.later.version..;;.;;.GNU
15880 20 45 6d 61 63 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 .Emacs.is.distributed.in.the.hop
158a0 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 e.that.it.will.be.useful,.;;.but
158c0 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 .WITHOUT.ANY.WARRANTY;.without.e
158e0 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d ven.the.implied.warranty.of.;;.M
15900 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 ERCHANTABILITY.or.FITNESS.FOR.A.
15920 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 PARTICULAR.PURPOSE...See.the.;;.
15940 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 20 66 6f 72 20 6d GNU.General.Public.License.for.m
15960 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 ore.details..;;.;;.You.should.ha
15980 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 ve.received.a.copy.of.the.GNU.Ge
159a0 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 neral.Public.License.;;.along.wi
159c0 74 68 20 47 4e 55 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 th.GNU.Emacs...If.not,.see.<http
159e0 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b ://www.gnu.org/licenses/>..;;.;;
15a00 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 44 69 66 66 20 6d 6f 64 65 6c 0a 0a 3b 3b ;.Commentary:..;;.Diff.model..;;
15a20 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 75 74 69 6c 29 0a 28 65 ;.Code:.(require.'ztree-util).(e
15a40 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 val-when-compile.(require.'cl-li
15a60 62 29 29 0a 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 6e 73 69 64 65 72 b))..(defvar.ztree-diff-consider
15a80 2d 66 69 6c 65 2d 70 65 72 6d 69 73 73 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 4d 61 72 6b 20 66 69 -file-permissions.nil..."Mark.fi
15aa0 6c 65 73 20 61 73 20 64 69 66 66 65 72 65 6e 74 20 69 66 20 74 68 65 69 72 20 70 65 72 6d 69 73 les.as.different.if.their.permis
15ac0 73 69 6f 6e 73 20 61 72 65 20 64 69 66 66 65 72 65 6e 74 22 29 0a 0a 28 64 65 66 76 61 72 20 7a sions.are.different")..(defvar.z
15ae0 74 72 65 65 2d 64 69 66 66 2d 63 6f 6e 73 69 64 65 72 2d 66 69 6c 65 2d 73 69 7a 65 20 74 0a 20 tree-diff-consider-file-size.t..
15b00 20 22 4d 61 72 6b 20 66 69 6c 65 73 20 61 73 20 64 69 66 66 65 72 65 6e 74 20 69 66 20 74 68 65 ."Mark.files.as.different.if.the
15b20 69 72 20 73 69 7a 65 20 64 69 66 66 65 72 65 6e 74 22 29 0a 0a 28 64 65 66 76 61 72 20 7a 74 72 ir.size.different")..(defvar.ztr
15b40 65 65 2d 64 69 66 66 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 6f 70 74 69 6f 6e 73 20 6e 69 6c 0a 20 ee-diff-additional-options.nil..
15b60 20 22 43 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 64 ."Command-line.options.for.the.d
15b80 69 66 66 20 70 72 6f 67 72 61 6d 20 75 73 65 64 20 61 73 20 61 20 64 69 66 66 20 62 61 63 6b 65 iff.program.used.as.a.diff.backe
15ba0 6e 64 2e 20 54 68 65 73 65 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 61 64 64 65 64 20 74 6f 20 64 nd..These.options.are.added.to.d
15bc0 65 66 61 75 6c 74 20 27 2d 71 27 20 6f 70 74 69 6f 6e 2e 0a 53 68 6f 75 6c 64 20 62 65 20 61 20 efault.'-q'.option..Should.be.a.
15be0 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2e 0a 45 78 61 6d 70 6c 65 3a 0a 28 73 65 74 71 20 list.of.strings..Example:.(setq.
15c00 7a 74 72 65 65 2d 64 69 66 66 2d 6f 70 74 69 6f 6e 73 20 27 28 5c 22 2d 77 5c 22 20 5c 22 2d 69 ztree-diff-options.'(\"-w\".\"-i
15c20 5c 22 29 29 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 64 69 66 66 \"))")..(defvar-local.ztree-diff
15c40 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 2d 66 75 6e 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f -model-ignore-fun.nil..."Functio
15c60 6e 20 77 68 69 63 68 20 64 65 74 65 72 6d 69 6e 65 73 20 69 66 20 74 68 65 20 6e 6f 64 65 20 73 n.which.determines.if.the.node.s
15c80 68 6f 75 6c 64 20 62 65 20 65 78 63 6c 75 64 65 64 20 66 72 6f 6d 20 63 6f 6d 70 61 72 69 73 6f hould.be.excluded.from.compariso
15ca0 6e 2e 22 29 0a 0a 0a 3b 3b 20 43 72 65 61 74 65 20 61 20 72 65 63 6f 72 64 20 7a 74 72 65 65 2d n.")...;;.Create.a.record.ztree-
15cc0 64 69 66 66 2d 6e 6f 64 65 20 77 69 74 68 20 64 65 66 69 6e 65 64 20 66 69 65 6c 64 73 20 61 6e diff-node.with.defined.fields.an
15ce0 64 20 67 65 74 74 65 72 73 2f 73 65 74 74 65 72 73 0a 3b 3b 20 68 65 72 65 3a 0a 3b 3b 20 70 61 d.getters/setters.;;.here:.;;.pa
15d00 72 65 6e 74 20 2d 20 70 61 72 65 6e 74 20 6e 6f 64 65 0a 3b 3b 20 6c 65 66 74 2d 70 61 74 68 20 rent.-.parent.node.;;.left-path.
15d20 69 73 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 20 6f 6e 20 74 68 65 20 6c 65 66 74 20 73 69 64 is.the.full.path.on.the.left.sid
15d40 65 20 6f 66 20 74 68 65 20 64 69 66 66 20 77 69 6e 64 6f 77 2c 0a 3b 3b 20 72 69 67 68 74 2d 70 e.of.the.diff.window,.;;.right-p
15d60 61 74 68 20 69 73 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 20 6f 66 20 74 68 65 20 72 69 67 68 ath.is.the.full.path.of.the.righ
15d80 74 20 73 69 64 65 2c 0a 3b 3b 20 73 68 6f 72 74 2d 6e 61 6d 65 20 2d 20 69 73 20 74 68 65 20 66 t.side,.;;.short-name.-.is.the.f
15da0 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 0a 3b 3b 20 63 68 69 6c 64 72 65 ile.or.directory.name.;;.childre
15dc0 6e 20 2d 20 6c 69 73 74 20 6f 66 20 6e 6f 64 65 73 20 2d 20 66 69 6c 65 73 20 6f 72 20 64 69 72 n.-.list.of.nodes.-.files.or.dir
15de0 65 63 74 6f 72 69 65 73 20 69 66 20 74 68 65 20 6e 6f 64 65 20 69 73 20 61 20 64 69 72 65 63 74 ectories.if.the.node.is.a.direct
15e00 6f 72 79 0a 3b 3b 20 64 69 66 66 65 72 65 6e 74 20 3d 20 7b 6e 69 6c 2c 20 27 73 61 6d 65 2c 20 ory.;;.different.=.{nil,.'same,.
15e20 27 6e 65 77 2c 20 27 64 69 66 66 2c 20 27 69 67 6e 6f 72 65 7d 20 2d 20 6d 65 61 6e 73 20 63 6f 'new,.'diff,.'ignore}.-.means.co
15e40 6d 70 61 72 69 73 6f 6e 20 73 74 61 74 75 73 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 7a mparison.status.(cl-defstruct.(z
15e60 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a tree-diff-node................(:
15e80 63 6f 6e 73 74 72 75 63 74 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f constructor)................(:co
15ea0 6e 73 74 72 75 63 74 6f 72 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 72 65 61 74 65 nstructor.ztree-diff-node-create
15ec0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 6c 65 66 74 2d 70 61 .................(parent.left-pa
15ee0 74 68 20 72 69 67 68 74 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 th.right-path...................
15f00 20 20 20 20 20 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......different.................
15f20 20 20 20 20 20 20 20 20 26 61 75 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........&aux....................
15f40 20 20 20 20 20 28 73 68 6f 72 74 2d 6e 61 6d 65 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f .....(short-name.(ztree-file-sho
15f60 72 74 2d 6e 61 6d 65 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 rt-name.........................
15f80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 6c 65 66 74 2d 70 61 74 68 20 72 69 67 68 74 .............(or.left-path.right
15fa0 2d 70 61 74 68 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 20 -path)))........................
15fc0 20 28 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(right-short-name..............
15fe0 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6c 65 66 74 2d 70 61 74 68 20 72 ............(if.(and.left-path.r
16000 69 67 68 74 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ight-path)......................
16020 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 72 ........(ztree-file-short-name.r
16040 69 67 68 74 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ight-path)......................
16060 20 20 20 20 20 20 73 68 6f 72 74 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 70 61 72 65 6e 74 20 6c ......short-name)))))...parent.l
16080 65 66 74 2d 70 61 74 68 20 72 69 67 68 74 2d 70 61 74 68 20 73 68 6f 72 74 2d 6e 61 6d 65 20 72 eft-path.right-path.short-name.r
160a0 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 63 68 69 6c 64 72 65 6e 20 64 69 66 66 65 72 65 ight-short-name.children.differe
160c0 6e 74 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e nt)..(defun.ztree-diff-model-ign
160e0 6f 72 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 69 66 20 74 68 65 ore-p.(node)..."Determine.if.the
16100 20 4e 4f 44 45 20 73 68 6f 75 6c 64 20 62 65 20 65 78 63 6c 75 64 65 64 20 66 72 6f 6d 20 63 6f .NODE.should.be.excluded.from.co
16120 6d 70 61 72 69 73 6f 6e 20 72 65 73 75 6c 74 73 2e 22 0a 20 20 28 77 68 65 6e 20 7a 74 72 65 65 mparison.results."...(when.ztree
16140 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 2d 66 75 6e 0a 20 20 20 20 28 66 75 6e 63 -diff-model-ignore-fun.....(func
16160 61 6c 6c 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 2d 66 75 6e 20 all.ztree-diff-model-ignore-fun.
16180 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d node)))..(defun.ztree-diff-node-
161a0 74 6f 2d 73 74 72 69 6e 67 20 28 6e 6f 64 65 29 0a 20 20 22 43 6f 6e 73 74 72 75 63 74 20 74 68 to-string.(node)..."Construct.th
161c0 65 20 73 74 72 69 6e 67 20 77 69 74 68 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 4e 4f e.string.with.contents.of.the.NO
161e0 44 45 20 67 69 76 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 DE.given."...(let.((string-or-ni
16200 6c 20 23 27 28 6c 61 6d 62 64 61 20 28 78 29 20 28 69 66 20 78 0a 20 20 20 20 20 20 20 20 20 20 l.#'(lambda.(x).(if.x...........
16220 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 28 ...............................(
16240 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 70 20 78 29 20 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 cond.((stringp.x).x)............
16260 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 ................................
16280 20 20 20 20 28 28 65 71 20 78 20 27 6e 65 77 29 20 22 6e 65 77 22 29 0a 20 20 20 20 20 20 20 20 ....((eq.x.'new)."new").........
162a0 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 ................................
162c0 20 20 20 20 20 20 20 28 28 65 71 20 78 20 27 64 69 66 66 29 20 22 64 69 66 66 65 72 65 6e 74 22 .......((eq.x.'diff)."different"
162e0 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 )...............................
16300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 78 20 27 69 67 6e 6f 72 65 29 .................((eq.x.'ignore)
16320 20 22 69 67 6e 6f 72 65 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."ignored").....................
16340 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 28 65 71 20 ...........................((eq.
16360 78 20 27 73 61 6d 65 29 20 22 73 61 6d 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x.'same)."same")................
16380 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 ................................
163a0 28 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 78 (t.(ztree-diff-node-short-name.x
163c0 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 20 20 20 20 20 20 ))).............................
163e0 20 20 20 20 20 20 20 20 20 20 20 22 28 65 6d 70 74 79 29 22 29 29 29 0a 20 20 20 20 20 20 20 20 ..........."(empty)"))).........
16400 28 63 68 69 6c 64 72 65 6e 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 (children.(ztree-diff-node-child
16420 72 65 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 63 68 2d 73 74 72 20 22 22 29 29 0a ren.node)).........(ch-str."")).
16440 20 20 20 20 28 64 6f 6c 69 73 74 20 28 78 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 28 ....(dolist.(x.children).......(
16460 73 65 74 71 20 63 68 2d 73 74 72 20 28 63 6f 6e 63 61 74 20 63 68 2d 73 74 72 20 22 5c 6e 20 20 setq.ch-str.(concat.ch-str."\n..
16480 20 2a 20 22 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 .*.".(ztree-diff-node-short-name
164a0 20 78 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 22 .x)............................"
164c0 3a 20 22 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 28 :."............................(
164e0 66 75 6e 63 61 6c 6c 20 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 6c 20 28 7a 74 72 65 65 2d 64 69 66 funcall.string-or-nil.(ztree-dif
16500 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 78 29 29 29 29 29 0a 20 20 20 20 28 63 6f 6e f-node-different.x))))).....(con
16520 63 61 74 20 22 4e 6f 64 65 3a 20 22 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 cat."Node:.".(ztree-diff-node-sh
16540 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 0a ort-name.node)............."\n".
16560 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2a 20 50 61 72 65 6e 74 3a 20 22 20 28 66 75 6e 63 61 ............".*.Parent:.".(funca
16580 6c 6c 20 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 ll.string-or-nil.(ztree-diff-nod
165a0 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 e-parent.node))............."\n"
165c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2a 20 53 74 61 74 75 73 3a 20 22 20 28 66 75 6e 63 .............".*.Status:.".(func
165e0 61 6c 6c 20 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f all.string-or-nil.(ztree-diff-no
16600 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 de-different.node)).............
16620 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2a 20 4c 65 66 74 20 70 61 74 68 3a 20 "\n".............".*.Left.path:.
16640 22 20 28 66 75 6e 63 61 6c 6c 20 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 6c 20 28 7a 74 72 65 65 2d ".(funcall.string-or-nil.(ztree-
16660 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 diff-node-left-path.node))......
16680 20 20 20 20 20 20 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2a 20 52 69 67 68 ......."\n".............".*.Righ
166a0 74 20 70 61 74 68 3a 20 22 20 28 66 75 6e 63 61 6c 6c 20 73 74 72 69 6e 67 2d 6f 72 2d 6e 69 6c t.path:.".(funcall.string-or-nil
166c0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 .(ztree-diff-node-right-path.nod
166e0 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 e))............."\n"............
16700 20 22 20 2a 20 43 68 69 6c 64 72 65 6e 3a 20 22 20 63 68 2d 73 74 72 0a 20 20 20 20 20 20 20 20 .".*.Children:.".ch-str.........
16720 20 20 20 20 22 5c 6e 22 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d ...."\n")))...(defun.ztree-diff-
16740 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 2d 77 72 61 70 70 65 72 20 28 6e 6f 64 65 20 26 6f node-short-name-wrapper.(node.&o
16760 70 74 69 6f 6e 61 6c 20 72 69 67 68 74 2d 73 69 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 ptional.right-side)..."Return.th
16780 65 20 73 68 6f 72 74 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 4e 4f 44 45 20 67 69 76 65 6e 2e 0a e.short.name.of.the.NODE.given..
167a0 49 66 20 74 68 65 20 52 49 47 48 54 2d 53 49 44 45 20 69 73 20 74 72 75 65 2c 20 74 61 6b 65 20 If.the.RIGHT-SIDE.is.true,.take.
167c0 74 68 65 20 72 69 67 68 74 20 6c 65 61 66 22 0a 20 20 28 69 66 20 28 6e 6f 74 20 72 69 67 68 74 the.right.leaf"...(if.(not.right
167e0 2d 73 69 64 65 29 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 -side).......(ztree-diff-node-sh
16800 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e ort-name.node).....(ztree-diff-n
16820 6f 64 65 2d 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 0a 0a 0a 28 ode-right-short-name.node)))...(
16840 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 69 73 2d 64 69 72 65 63 74 6f defun.ztree-diff-node-is-directo
16860 72 79 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 73 20 69 66 20 74 68 65 20 4e ry.(node)..."Determines.if.the.N
16880 4f 44 45 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 ODE.is.a.directory."...(let.((le
168a0 66 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f ft.(ztree-diff-node-left-path.no
168c0 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d de)).........(right.(ztree-diff-
168e0 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 69 66 20 node-right-path.node))).....(if.
16900 6c 65 66 74 0a 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 6c left.........(file-directory-p.l
16920 65 66 74 29 0a 20 20 20 20 20 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 72 69 67 eft).......(file-directory-p.rig
16940 68 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 ht))))..(defun.ztree-diff-node-s
16960 69 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 73 69 64 65 ide.(node)..."Determine.the.side
16980 20 74 68 65 72 65 20 74 68 65 20 66 69 6c 65 20 69 73 20 70 72 65 73 65 6e 74 20 66 6f 72 20 4e .there.the.file.is.present.for.N
169a0 4f 44 45 2e 0a 52 65 74 75 72 6e 20 42 4f 54 48 20 69 66 20 74 68 65 20 66 69 6c 65 20 70 72 65 ODE..Return.BOTH.if.the.file.pre
169c0 73 65 6e 74 20 6f 6e 20 62 6f 74 68 20 73 69 64 65 73 3b 0a 4c 45 46 54 20 69 66 20 6f 6e 6c 79 sent.on.both.sides;.LEFT.if.only
169e0 20 6f 6e 20 74 68 65 20 6c 65 66 74 20 73 69 64 65 20 61 6e 64 0a 52 49 47 48 54 20 69 66 20 6f .on.the.left.side.and.RIGHT.if.o
16a00 6e 6c 79 20 6f 6e 20 74 68 65 20 72 69 67 68 74 20 73 69 64 65 2e 22 0a 20 20 28 6c 65 74 20 28 nly.on.the.right.side."...(let.(
16a20 28 6c 65 66 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 (left.(ztree-diff-node-left-path
16a40 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 72 69 67 68 74 20 28 7a 74 72 65 65 2d 64 69 .node)).........(right.(ztree-di
16a60 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 ff-node-right-path.node))).....(
16a80 69 66 20 28 61 6e 64 20 6c 65 66 74 20 72 69 67 68 74 29 20 27 62 6f 74 68 0a 20 20 20 20 20 20 if.(and.left.right).'both.......
16aa0 28 69 66 20 6c 65 66 74 20 27 6c 65 66 74 20 27 72 69 67 68 74 29 29 29 29 0a 0a 0a 28 64 65 66 (if.left.'left.'right))))...(def
16ac0 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 65 71 75 61 6c 20 28 6e 6f 64 65 31 20 un.ztree-diff-node-equal.(node1.
16ae0 6e 6f 64 65 32 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 73 20 69 66 20 4e 4f 44 45 31 20 61 6e node2)..."Determines.if.NODE1.an
16b00 64 20 4e 4f 44 45 32 20 61 72 65 20 65 71 75 61 6c 2e 22 0a 20 20 28 61 6e 64 20 28 73 74 72 69 d.NODE2.are.equal."...(and.(stri
16b20 6e 67 2d 65 71 75 61 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d ng-equal.(ztree-diff-node-short-
16b40 6e 61 6d 65 20 6e 6f 64 65 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name.node1).....................
16b60 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 .(ztree-diff-node-short-name.nod
16b80 65 32 29 29 0a 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 7a 74 72 65 65 e2))........(string-equal.(ztree
16ba0 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 31 29 0a 20 20 20 20 -diff-node-left-path.node1).....
16bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 .................(ztree-diff-nod
16be0 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 32 29 29 0a 20 20 20 20 20 20 20 28 73 74 72 69 e-left-path.node2))........(stri
16c00 6e 67 2d 65 71 75 61 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d ng-equal.(ztree-diff-node-right-
16c20 70 61 74 68 20 6e 6f 64 65 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 path.node1).....................
16c40 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 .(ztree-diff-node-right-path.nod
16c60 65 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d e1))))..(defun.ztree-diff-model-
16c80 66 69 6c 65 73 2d 65 71 75 61 6c 20 28 66 69 6c 65 31 20 66 69 6c 65 32 29 0a 20 20 22 43 6f 6d files-equal.(file1.file2)..."Com
16ca0 70 61 72 65 20 66 69 6c 65 73 20 46 49 4c 45 31 20 61 6e 64 20 46 49 4c 45 32 20 75 73 69 6e 67 pare.files.FILE1.and.FILE2.using
16cc0 20 65 78 74 65 72 6e 61 6c 20 64 69 66 66 2e 0a 52 65 74 75 72 6e 73 20 74 20 69 66 20 65 71 75 .external.diff..Returns.t.if.equ
16ce0 61 6c 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 7a 74 72 65 65 2d 73 61 6d 65 2d 68 6f 73 74 2d al."...(unless.(ztree-same-host-
16d00 70 20 66 69 6c 65 31 20 66 69 6c 65 32 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 6d 70 61 p.file1.file2).....(error."Compa
16d20 72 65 64 20 66 69 6c 65 73 20 61 72 65 20 6e 6f 74 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 68 6f red.files.are.not.on.the.same.ho
16d40 73 74 22 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 31 2d 75 6e 74 72 61 6d 70 69 66 69 st"))...(let*.((file1-untrampifi
16d60 65 64 20 28 7a 74 72 65 65 2d 75 6e 74 72 61 6d 70 69 66 79 2d 66 69 6c 65 6e 61 6d 65 20 66 69 ed.(ztree-untrampify-filename.fi
16d80 6c 65 31 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 32 2d 75 6e 74 72 61 6d 70 69 66 69 le1))..........(file2-untrampifi
16da0 65 64 20 28 7a 74 72 65 65 2d 75 6e 74 72 61 6d 70 69 66 79 2d 66 69 6c 65 6e 61 6d 65 20 66 69 ed.(ztree-untrampify-filename.fi
16dc0 6c 65 32 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 28 61 6e 64 le2))).....(if.(or..........(and
16de0 20 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 6e 73 69 64 65 72 2d 66 69 6c 65 2d 73 69 7a 65 0a 20 .ztree-diff-consider-file-size..
16e00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 28 6e 74 68 20 37 20 28 66 69 6c 65 2d 61 74 .............(/=.(nth.7.(file-at
16e20 74 72 69 62 75 74 65 73 20 66 69 6c 65 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 tributes.file1))...............(
16e40 6e 74 68 20 37 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 73 20 66 69 6c 65 32 29 29 29 29 nth.7.(file-attributes.file2))))
16e60 0a 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 7a 74 72 65 65 2d 64 69 66 66 2d 63 6f 6e 73 69 64 ..........(and.ztree-diff-consid
16e80 65 72 2d 66 69 6c 65 2d 70 65 72 6d 69 73 73 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 er-file-permissions.............
16ea0 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 6e 74 68 20 38 20 28 66 69 6c ..(not.(string-equal.(nth.8.(fil
16ec0 65 2d 61 74 74 72 69 62 75 74 65 73 20 66 69 6c 65 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 e-attributes.file1))............
16ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 38 20 28 66 69 ......................(nth.8.(fi
16f00 6c 65 2d 61 74 74 72 69 62 75 74 65 73 20 66 69 6c 65 32 29 29 29 29 29 0a 20 20 20 20 20 20 20 le-attributes.file2)))))........
16f20 20 20 28 2f 3d 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 70 72 ..(/=.0..............(apply.#'pr
16f40 6f 63 65 73 73 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 ocess-file.....................d
16f60 69 66 66 2d 63 6f 6d 6d 61 6e 64 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 iff-command.nil.nil.nil.........
16f80 20 20 20 20 20 20 20 20 20 20 20 20 60 28 22 2d 71 22 20 2c 40 7a 74 72 65 65 2d 64 69 66 66 2d ............`("-q".,@ztree-diff-
16fa0 61 64 64 69 74 69 6f 6e 61 6c 2d 6f 70 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 additional-options..............
16fc0 20 20 20 20 20 20 20 20 20 2c 66 69 6c 65 31 2d 75 6e 74 72 61 6d 70 69 66 69 65 64 0a 20 20 20 .........,file1-untrampified....
16fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 66 69 6c 65 32 2d 75 6e 74 72 61 6d ...................,file2-untram
17000 70 69 66 69 65 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 27 64 69 66 66 0a 20 20 20 20 20 20 27 pified)))).........'diff.......'
17020 73 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 2d same)))..(defun.ztree-directory-
17040 66 69 6c 65 73 20 28 64 69 72 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f files.(dir)..."Return.the.list.o
17060 66 20 66 75 6c 6c 20 70 61 74 68 73 20 6f 66 20 66 69 6c 65 73 20 69 6e 20 61 20 64 69 72 65 63 f.full.paths.of.files.in.a.direc
17080 74 6f 72 79 20 44 49 52 2e 0a 46 69 6c 74 65 72 73 20 6f 75 74 20 2e 20 61 6e 64 20 2e 2e 22 0a tory.DIR..Filters.out...and...".
170a0 20 20 28 7a 74 72 65 65 2d 66 69 6c 74 65 72 20 23 27 28 6c 61 6d 62 64 61 20 28 66 69 6c 65 29 ..(ztree-filter.#'(lambda.(file)
170c0 20 28 6c 65 74 20 28 28 73 69 6d 70 6c 65 2d 6e 61 6d 65 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d .(let.((simple-name.(ztree-file-
170e0 73 68 6f 72 74 2d 6e 61 6d 65 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 short-name.file)))..............
17100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6f 72 20 28 ......................(not.(or.(
17120 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 73 69 6d 70 6c 65 2d 6e 61 6d 65 20 22 2e 22 29 0a 20 20 string-equal.simple-name.".")...
17140 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 ................................
17160 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 73 69 6d 70 6c 65 2d 6e ..........(string-equal.simple-n
17180 61 6d 65 20 22 2e 2e 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 ame.".."))))).................(d
171a0 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 64 69 72 20 27 66 75 6c 6c 29 29 29 0a 0a 28 64 65 irectory-files.dir.'full)))..(de
171c0 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 70 61 72 74 69 61 6c 2d 72 65 73 fun.ztree-diff-model-partial-res
171e0 63 61 6e 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 73 63 61 6e 20 74 68 65 20 4e 4f 44 45 2e 0a 54 can.(node)..."Rescan.the.NODE..T
17200 68 65 20 6e 6f 64 65 20 69 73 20 61 20 65 69 74 68 65 72 20 61 20 66 69 6c 65 20 6f 72 20 64 69 he.node.is.a.either.a.file.or.di
17220 72 65 63 74 6f 72 79 20 77 69 74 68 20 62 6f 74 68 0a 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 rectory.with.both.left.and.right
17240 20 70 61 72 74 73 20 65 78 69 73 74 69 6e 67 2e 22 0a 20 20 3b 3b 20 69 66 20 61 20 64 69 72 65 .parts.existing."...;;.if.a.dire
17260 63 74 6f 72 79 20 2d 20 72 65 63 72 65 61 74 65 0a 20 20 28 69 66 20 28 7a 74 72 65 65 2d 64 69 ctory.-.recreate...(if.(ztree-di
17280 66 66 2d 6e 6f 64 65 2d 69 73 2d 64 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 29 0a 20 20 20 20 20 ff-node-is-directory.node)......
172a0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 2d 77 69 74 68 2d .(ztree-diff-node-recreate-with-
172c0 70 72 6f 67 72 65 73 73 20 6e 6f 64 65 29 0a 20 20 20 20 3b 3b 20 69 66 20 61 20 66 69 6c 65 2c progress.node).....;;.if.a.file,
172e0 20 63 68 61 6e 67 65 20 61 20 73 74 61 74 75 73 0a 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 .change.a.status.....(setf.(ztre
17300 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 0a 20 20 20 20 e-diff-node-different.node).....
17320 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d ......(if.(or.(ztree-diff-model-
17340 69 67 6e 6f 72 65 2d 70 20 6e 6f 64 65 29 20 3b 20 69 66 20 73 68 6f 75 6c 64 20 62 65 20 69 67 ignore-p.node).;.if.should.be.ig
17360 6e 6f 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 28 7a 74 nored...................(eql.(zt
17380 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 69 ree-diff-node-different.node).'i
173a0 67 6e 6f 72 65 29 20 3b 20 77 61 73 20 69 67 6e 6f 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 gnore).;.was.ignored............
173c0 20 20 20 20 20 20 20 28 65 71 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 .......(eql.(ztree-diff-node-dif
173e0 66 65 72 65 6e 74 20 3b 20 6f 72 20 70 61 72 65 6e 74 20 77 61 73 20 69 67 6e 6f 72 65 64 0a 20 ferent.;.or.parent.was.ignored..
17400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 .......................(ztree-di
17420 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 ff-node-parent.node))...........
17440 20 20 20 20 20 20 20 20 20 20 20 20 20 27 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 .............'ignore))..........
17460 20 20 20 20 20 27 69 67 6e 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d .....'ignore.............(ztree-
17480 64 69 66 66 2d 6d 6f 64 65 6c 2d 66 69 6c 65 73 2d 65 71 75 61 6c 20 28 7a 74 72 65 65 2d 64 69 diff-model-files-equal.(ztree-di
174a0 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 ff-node-left-path.node).........
174c0 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 ................................
174e0 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f ..(ztree-diff-node-right-path.no
17500 64 65 29 29 29 29 29 0a 20 20 3b 3b 20 75 70 64 61 74 65 20 61 6c 6c 20 70 61 72 65 6e 74 73 20 de)))))...;;.update.all.parents.
17520 73 74 61 74 75 73 65 73 0a 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 64 61 statuses...(ztree-diff-node-upda
17540 74 65 2d 61 6c 6c 2d 70 61 72 65 6e 74 73 2d 64 69 66 66 20 6e 6f 64 65 29 29 0a 0a 28 64 65 66 te-all-parents-diff.node))..(def
17560 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 75 62 74 72 65 65 20 28 70 61 72 un.ztree-diff-model-subtree.(par
17580 65 6e 74 20 70 61 74 68 20 73 69 64 65 20 64 69 66 66 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 ent.path.side.diff)..."Create.a.
175a0 73 75 62 74 72 65 65 20 77 69 74 68 20 67 69 76 65 6e 20 50 41 52 45 4e 54 20 66 6f 72 20 74 68 subtree.with.given.PARENT.for.th
175c0 65 20 67 69 76 65 6e 20 50 41 54 48 2e 0a 41 72 67 75 6d 65 6e 74 20 53 49 44 45 20 65 69 74 68 e.given.PATH..Argument.SIDE.eith
175e0 65 72 20 60 6c 65 66 74 27 20 6f 72 20 60 72 69 67 68 74 27 20 73 69 64 65 2e 0a 41 72 67 75 6d er.`left'.or.`right'.side..Argum
17600 65 6e 74 20 44 49 46 46 20 64 69 66 66 65 72 65 6e 74 20 73 74 61 74 75 73 20 74 6f 20 62 65 20 ent.DIFF.different.status.to.be.
17620 61 73 73 69 67 6e 65 64 20 74 6f 20 61 6c 6c 20 63 72 65 61 74 65 64 20 6e 6f 64 65 73 2e 22 0a assigned.to.all.created.nodes.".
17640 20 20 28 6c 65 74 20 28 28 66 69 6c 65 73 20 28 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 2d ..(let.((files.(ztree-directory-
17660 66 69 6c 65 73 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 73 75 6c 74 20 6e 69 6c files.path)).........(result.nil
17680 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 66 69 6c 65 20 66 69 6c 65 73 29 0a 20 20 20 20 )).....(dolist.(file.files).....
176a0 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 0a 20 20 ..(if.(file-directory-p.file)...
176c0 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 64 69 66 66 ........(let*.((node.(ztree-diff
176e0 2d 6e 6f 64 65 2d 63 72 65 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -node-create....................
17700 20 20 20 20 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....parent.....................
17720 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 73 69 64 65 20 27 6c 65 66 74 29 20 66 69 6c 65 29 0a ....(when.(eq.side.'left).file).
17740 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 77 68 65 6e 20 28 65 ........................(when.(e
17760 71 20 73 69 64 65 20 27 72 69 67 68 74 29 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 q.side.'right).file)............
17780 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 66 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .............diff)).............
177a0 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c .....(children.(ztree-diff-model
177c0 2d 73 75 62 74 72 65 65 20 6e 6f 64 65 20 66 69 6c 65 20 73 69 64 65 20 64 69 66 66 29 29 29 0a -subtree.node.file.side.diff))).
177e0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f ............(setf.(ztree-diff-no
17800 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 de-children.node).children).....
17820 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e 6f 64 65 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 ........(push.node.result)).....
17840 20 20 20 20 28 70 75 73 68 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 72 65 61 74 ....(push.(ztree-diff-node-creat
17860 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 e................parent.........
17880 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 73 69 64 65 20 27 6c 65 66 74 29 20 66 69 6c .......(when.(eq.side.'left).fil
178a0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 73 69 64 65 e)................(when.(eq.side
178c0 20 27 72 69 67 68 74 29 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 .'right).file)................di
178e0 66 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 0a 20 20 20 20 ff)...............result))).....
17900 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 result))..(defun.ztree-diff-node
17920 2d 75 70 64 61 74 65 2d 64 69 66 66 2d 66 72 6f 6d 2d 63 68 69 6c 64 72 65 6e 20 28 6e 6f 64 65 -update-diff-from-children.(node
17940 29 0a 20 20 22 53 65 74 20 74 68 65 20 64 69 66 66 20 73 74 61 74 75 73 20 66 6f 72 20 74 68 65 )..."Set.the.diff.status.for.the
17960 20 4e 4f 44 45 20 62 61 73 65 64 20 6f 6e 20 69 74 73 20 63 68 69 6c 64 72 65 6e 2e 22 0a 20 20 .NODE.based.on.its.children."...
17980 28 75 6e 6c 65 73 73 20 28 65 71 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 (unless.(eql.(ztree-diff-node-di
179a0 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 28 6c 65 74 20 fferent.node).'ignore).....(let.
179c0 28 28 64 69 66 66 20 28 63 6c 2d 72 65 64 75 63 65 20 23 27 7a 74 72 65 65 2d 64 69 66 66 2d 6d ((diff.(cl-reduce.#'ztree-diff-m
179e0 6f 64 65 6c 2d 75 70 64 61 74 65 2d 64 69 66 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 odel-update-diff................
17a00 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 ............(ztree-diff-node-chi
17a20 6c 64 72 65 6e 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ldren.node).....................
17a40 20 20 20 20 20 20 20 3a 69 6e 69 74 69 61 6c 2d 76 61 6c 75 65 20 27 73 61 6d 65 0a 20 20 20 20 .......:initial-value.'same.....
17a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 27 7a 74 72 .......................:key.'ztr
17a80 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 ee-diff-node-different))).......
17aa0 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 (setf.(ztree-diff-node-different
17ac0 20 6e 6f 64 65 29 20 64 69 66 66 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 .node).diff))))..(defun.ztree-di
17ae0 66 66 2d 6e 6f 64 65 2d 75 70 64 61 74 65 2d 61 6c 6c 2d 70 61 72 65 6e 74 73 2d 64 69 66 66 20 ff-node-update-all-parents-diff.
17b00 28 6e 6f 64 65 29 0a 20 20 22 52 65 63 75 72 73 69 76 65 6c 79 20 75 70 64 61 74 65 20 61 6c 6c (node)..."Recursively.update.all
17b20 20 70 61 72 65 6e 74 73 20 64 69 66 66 20 73 74 61 74 75 73 20 66 6f 72 20 74 68 65 20 4e 4f 44 .parents.diff.status.for.the.NOD
17b40 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 E."...(let.((parent.node)).....(
17b60 77 68 69 6c 65 20 28 73 65 74 71 20 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e while.(setq.parent.(ztree-diff-n
17b80 6f 64 65 2d 70 61 72 65 6e 74 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 28 7a 74 72 65 65 ode-parent.parent)).......(ztree
17ba0 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 64 61 74 65 2d 64 69 66 66 2d 66 72 6f 6d 2d 63 68 69 6c -diff-node-update-diff-from-chil
17bc0 64 72 65 6e 20 70 61 72 65 6e 74 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 dren.parent))))...(defun.ztree-d
17be0 69 66 66 2d 6d 6f 64 65 6c 2d 75 70 64 61 74 65 2d 64 69 66 66 20 28 6f 6c 64 20 6e 65 77 29 0a iff-model-update-diff.(old.new).
17c00 20 20 22 47 65 74 20 74 68 65 20 64 69 66 66 20 73 74 61 74 75 73 20 64 65 70 65 6e 64 69 6e 67 .."Get.the.diff.status.depending
17c20 20 69 66 20 4f 4c 44 20 6f 72 20 4e 45 57 20 69 73 20 6e 6f 74 20 6e 69 6c 2e 0a 49 66 20 74 68 .if.OLD.or.NEW.is.not.nil..If.th
17c40 65 20 4f 4c 44 20 69 73 20 60 69 67 6e 6f 72 65 27 2c 20 64 6f 20 6e 6f 74 20 63 68 61 6e 67 65 e.OLD.is.`ignore',.do.not.change
17c60 20 61 6e 79 74 68 69 6e 67 22 0a 20 20 3b 3b 20 69 66 20 74 68 65 20 6f 6c 64 20 77 68 6f 6c 65 .anything"...;;.if.the.old.whole
17c80 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 69 67 6e 6f 72 65 64 2c 20 69 67 6e 6f 72 65 20 63 68 .directory.is.ignored,.ignore.ch
17ca0 69 6c 64 72 65 6e 27 73 20 73 74 61 74 75 73 0a 20 20 28 63 6f 6e 64 20 28 28 65 71 6c 20 6f 6c ildren's.status...(cond.((eql.ol
17cc0 64 20 27 69 67 6e 6f 72 65 29 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 d.'ignore).'ignore).........;;.i
17ce0 66 20 74 68 65 20 6e 65 77 20 73 74 61 74 75 73 20 69 73 20 69 67 6e 6f 72 65 64 2c 20 75 73 65 f.the.new.status.is.ignored,.use
17d00 20 6f 6c 64 0a 20 20 20 20 20 20 20 20 28 28 65 71 6c 20 6e 65 77 20 27 69 67 6e 6f 72 65 29 20 .old.........((eql.new.'ignore).
17d20 6f 6c 64 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 74 68 65 20 6f 6c 64 20 6f 72 20 6e 65 old).........;;.if.the.old.or.ne
17d40 77 20 73 74 61 74 75 73 20 69 73 20 64 69 66 66 65 72 65 6e 74 2c 20 72 65 74 75 72 6e 20 64 69 w.status.is.different,.return.di
17d60 66 66 65 72 65 6e 74 0a 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 65 71 6c 20 6f 6c 64 20 27 64 fferent.........((or.(eql.old.'d
17d80 69 66 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 6e 65 77 20 27 64 69 66 66 iff)..............(eql.new.'diff
17da0 29 29 20 27 64 69 66 66 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 6e 65 77 20 69 73 20 27 )).'diff).........;;.if.new.is.'
17dc0 6e 65 77 2c 20 72 65 74 75 72 6e 20 6e 65 77 0a 20 20 20 20 20 20 20 20 28 28 65 71 6c 20 6e 65 new,.return.new.........((eql.ne
17de0 77 20 27 6e 65 77 29 20 27 6e 65 77 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 6c 6c 20 6f 74 68 w.'new).'new).........;;.all.oth
17e00 65 72 20 63 61 73 65 73 20 72 65 74 75 72 6e 20 6f 6c 64 0a 20 20 20 20 20 20 20 20 28 74 20 6f er.cases.return.old.........(t.o
17e20 6c 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 75 70 ld)))..(defun.ztree-diff-node-up
17e40 64 61 74 65 2d 64 69 66 66 2d 66 72 6f 6d 2d 70 61 72 65 6e 74 20 28 6e 6f 64 65 29 0a 20 20 22 date-diff-from-parent.(node)..."
17e60 52 65 63 75 72 73 69 76 65 6c 79 20 75 70 64 61 74 65 20 64 69 66 66 20 73 74 61 74 75 73 20 6f Recursively.update.diff.status.o
17e80 66 20 61 6c 6c 20 63 68 69 6c 64 72 65 6e 20 6f 66 20 4e 4f 44 45 2e 0a 54 68 69 73 20 66 75 6e f.all.children.of.NODE..This.fun
17ea0 63 74 69 6f 6e 20 77 69 6c 6c 20 74 72 61 76 65 72 73 65 20 74 68 72 6f 75 67 68 20 61 6c 6c 20 ction.will.traverse.through.all.
17ec0 63 68 69 6c 64 72 65 6e 20 72 65 63 75 72 73 69 76 65 6c 79 0a 73 65 74 74 69 6e 67 20 73 74 61 children.recursively.setting.sta
17ee0 74 75 73 20 66 72 6f 6d 20 74 68 65 20 4e 4f 44 45 2c 20 75 6e 6c 65 73 73 20 74 68 65 79 20 68 tus.from.the.NODE,.unless.they.h
17f00 61 76 65 20 61 6e 20 69 67 6e 6f 72 65 20 73 74 61 74 75 73 22 0a 20 20 28 6c 65 74 20 28 28 73 ave.an.ignore.status"...(let.((s
17f20 74 61 74 75 73 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 tatus.(ztree-diff-node-different
17f40 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 7a 74 72 65 65 .node)).........(children.(ztree
17f60 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 -diff-node-children.node))).....
17f80 3b 3b 20 69 66 20 74 68 65 20 70 61 72 65 6e 74 20 68 61 73 20 69 67 6e 6f 72 65 20 73 74 61 74 ;;.if.the.parent.has.ignore.stat
17fa0 75 73 2c 20 66 6f 72 63 65 20 61 6c 6c 20 6b 69 64 73 20 74 68 69 73 20 73 74 61 74 75 73 0a 20 us,.force.all.kids.this.status..
17fc0 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 65 20 6f 6e 6c 79 20 75 70 64 61 74 65 20 73 74 61 74 ...;;.otherwise.only.update.stat
17fe0 75 73 20 77 68 65 6e 20 74 68 65 20 63 68 69 6c 64 20 73 74 61 74 75 73 20 69 73 20 6e 6f 74 20 us.when.the.child.status.is.not.
18000 69 67 6e 6f 72 65 0a 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 63 68 69 6c 64 29 ignore.....(mapc.(lambda.(child)
18020 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 65 71 6c 20 73 74 61 74 .............(when.(or.(eql.stat
18040 75 73 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 us.'ignore).....................
18060 20 20 28 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f ..(not........................(o
18080 72 20 28 65 71 6c 20 73 74 61 74 75 73 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 r.(eql.status.'ignore)..........
180a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 28 7a 74 72 65 65 2d 64 69 ..................(eql.(ztree-di
180c0 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 69 6c 64 29 20 27 69 67 6e 6f 72 65 ff-node-different.child).'ignore
180e0 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d ))))...............(setf.(ztree-
18100 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 69 6c 64 29 20 73 74 61 74 75 diff-node-different.child).statu
18120 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 s)...............(ztree-diff-nod
18140 65 2d 75 70 64 61 74 65 2d 64 69 66 66 2d 66 72 6f 6d 2d 70 61 72 65 6e 74 20 63 68 69 6c 64 29 e-update-diff-from-parent.child)
18160 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 0a 0a 0a 28 64 )).............children)))....(d
18180 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 66 69 6e 64 2d 69 6e 2d 66 69 efun.ztree-diff-model-find-in-fi
181a0 6c 65 73 20 28 6c 69 73 74 20 73 68 6f 72 74 6e 61 6d 65 20 69 73 2d 64 69 72 29 0a 20 20 22 46 les.(list.shortname.is-dir)..."F
181c0 69 6e 64 20 69 6e 20 4c 49 53 54 20 6f 66 20 66 69 6c 65 73 20 74 68 65 20 66 69 6c 65 20 77 69 ind.in.LIST.of.files.the.file.wi
181e0 74 68 20 6e 61 6d 65 20 53 48 4f 52 54 4e 41 4d 45 2e 0a 49 66 20 49 53 2d 44 49 52 20 73 65 61 th.name.SHORTNAME..If.IS-DIR.sea
18200 72 63 68 69 6e 67 20 66 6f 72 20 64 69 72 65 63 74 6f 72 69 65 73 3b 20 61 73 73 75 6d 65 20 66 rching.for.directories;.assume.f
18220 69 6c 65 73 20 6f 74 68 65 72 77 69 73 65 22 0a 20 20 28 7a 74 72 65 65 2d 66 69 6e 64 20 6c 69 iles.otherwise"...(ztree-find.li
18240 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 61 6e st...............(lambda.(x).(an
18260 64 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 d.(string-equal.(ztree-file-shor
18280 74 2d 6e 61 6d 65 20 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-name.x).......................
182a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 72 74 6e 61 6d 65 .......................shortname
182c0 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 )...............................
182e0 20 28 65 71 20 69 73 2d 64 69 72 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 78 29 .(eq.is-dir.(file-directory-p.x)
18300 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d )))))...(defun.ztree-diff-model-
18320 73 68 6f 75 6c 64 2d 69 67 6e 6f 72 65 20 28 6e 6f 64 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e should-ignore.(node)..."Determin
18340 65 20 69 66 20 74 68 65 20 4e 4f 44 45 20 61 6e 64 20 69 74 73 20 63 68 69 6c 64 72 65 6e 20 73 e.if.the.NODE.and.its.children.s
18360 68 6f 75 6c 64 20 62 65 20 69 67 6e 6f 72 65 64 2e 0a 49 66 20 6e 6f 20 70 61 72 65 6e 74 20 2d hould.be.ignored..If.no.parent.-
18380 20 6e 65 76 65 72 20 69 67 6e 6f 72 65 3b 0a 69 66 20 69 6e 20 69 67 6e 6f 72 65 20 6c 69 73 74 .never.ignore;.if.in.ignore.list
183a0 20 2d 20 69 67 6e 6f 72 65 0a 69 66 20 70 61 72 65 6e 74 20 68 61 73 20 69 67 6e 6f 72 65 64 20 .-.ignore.if.parent.has.ignored.
183c0 73 74 61 74 75 73 20 2d 20 69 67 6e 6f 72 65 22 0a 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 74 status.-.ignore"...(let.((parent
183e0 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 .(ztree-diff-node-parent.node)))
18400 0a 20 20 20 20 28 61 6e 64 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 .....(and.parent..........(or.(e
18420 71 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 70 61 ql.(ztree-diff-node-different.pa
18440 72 65 6e 74 29 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 rent).'ignore)..............(ztr
18460 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 69 67 6e 6f 72 65 2d 70 20 6e 6f 64 65 29 29 29 29 29 ee-diff-model-ignore-p.node)))))
18480 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 ..(defun.ztree-diff-node-recreat
184a0 65 2d 77 69 74 68 2d 70 72 6f 67 72 65 73 73 20 28 6e 6f 64 65 29 0a 20 20 22 49 6e 69 74 69 61 e-with-progress.(node)..."Initia
184c0 74 65 20 75 70 64 61 74 65 20 6f 66 20 74 68 65 20 4e 4f 44 45 20 77 69 74 68 20 61 20 70 72 6f te.update.of.the.NODE.with.a.pro
184e0 67 72 65 73 73 20 70 72 69 6e 74 6f 75 74 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 67 72 65 73 gress.printout"...(let.((progres
18500 73 2d 72 65 70 6f 72 74 65 72 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 70 72 6f 67 72 65 s-reporter..........(make-progre
18520 73 73 2d 72 65 70 6f 72 74 65 72 20 28 63 6f 6e 63 61 74 20 22 43 6f 6d 70 61 72 69 6e 67 20 22 ss-reporter.(concat."Comparing."
18540 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 .(ztree-diff-node-left-path.node
18560 29 20 22 20 61 6e 64 20 22 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 ).".and.".(ztree-diff-node-right
18580 2d 70 61 74 68 20 6e 6f 64 65 29 20 22 20 2e 2e 2e 22 29 29 29 29 0a 20 20 20 20 28 7a 74 72 65 -path.node)."....")))).....(ztre
185a0 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 20 6e 6f 64 65 20 70 72 6f 67 72 65 e-diff-node-recreate.node.progre
185c0 73 73 2d 72 65 70 6f 72 74 65 72 29 0a 20 20 20 20 28 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 ss-reporter).....(progress-repor
185e0 74 65 72 2d 64 6f 6e 65 20 70 72 6f 67 72 65 73 73 2d 72 65 70 6f 72 74 65 72 29 29 29 0a 0a 28 ter-done.progress-reporter)))..(
18600 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 20 28 defun.ztree-diff-node-recreate.(
18620 6e 6f 64 65 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 70 6f 72 74 65 72 29 0a 20 20 22 54 72 61 76 node.&optional.reporter)..."Trav
18640 65 72 73 65 20 32 20 70 61 74 68 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 4e 4f 44 45 erse.2.paths.defined.in.the.NODE
18660 20 75 70 64 61 74 69 6e 67 20 69 74 73 20 63 68 69 6c 64 72 65 6e 20 61 6e 64 20 73 74 61 74 75 .updating.its.children.and.statu
18680 73 2e 0a 57 68 65 6e 20 52 45 50 4f 52 54 45 52 20 70 72 6f 76 69 64 65 64 20 75 70 64 61 74 65 s..When.REPORTER.provided.update
186a0 20 74 68 65 20 70 72 6f 67 72 65 73 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 69 73 74 31 20 .the.progress."...(let*.((list1.
186c0 28 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 28 7a 74 72 65 65 2d 64 69 (ztree-directory-files.(ztree-di
186e0 66 66 2d 6e 6f 64 65 2d 6c 65 66 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 20 3b 3b 20 6c 65 66 ff-node-left-path.node))).;;.lef
18700 74 20 6c 69 73 74 20 6f 66 20 6c 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 32 20 t.list.of.liles..........(list2.
18720 28 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 20 28 7a 74 72 65 65 2d 64 69 (ztree-directory-files.(ztree-di
18740 66 66 2d 6e 6f 64 65 2d 72 69 67 68 74 2d 70 61 74 68 20 6e 6f 64 65 29 29 29 20 3b 3b 20 72 69 ff-node-right-path.node))).;;.ri
18760 67 68 74 20 6c 69 73 74 20 6f 66 20 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 28 73 68 6f 75 ght.list.of.files..........(shou
18780 6c 64 2d 69 67 6e 6f 72 65 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 68 6f 75 ld-ignore.(ztree-diff-model-shou
187a0 6c 64 2d 69 67 6e 6f 72 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 73 74 61 ld-ignore.node))..........;;.sta
187c0 74 75 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 73 73 69 67 6e 65 64 20 74 6f 20 63 68 tus.automatically.assigned.to.ch
187e0 69 6c 64 72 65 6e 20 6f 66 20 74 68 65 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 28 63 68 69 ildren.of.the.node..........(chi
18800 6c 64 72 65 6e 2d 73 74 61 74 75 73 20 28 69 66 20 73 68 6f 75 6c 64 2d 69 67 6e 6f 72 65 20 27 ldren-status.(if.should-ignore.'
18820 69 67 6e 6f 72 65 20 27 6e 65 77 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e ignore.'new))..........(children
18840 20 6e 69 6c 29 29 20 20 20 20 3b 3b 20 6c 69 73 74 20 6f 66 20 63 68 69 6c 64 72 65 6e 0a 20 20 .nil))....;;.list.of.children...
18860 20 20 3b 3b 20 75 70 64 61 74 65 20 77 61 69 74 69 6e 67 20 73 74 61 74 75 73 0a 20 20 20 20 28 ..;;.update.waiting.status.....(
18880 77 68 65 6e 20 72 65 70 6f 72 74 65 72 0a 20 20 20 20 20 20 28 70 72 6f 67 72 65 73 73 2d 72 65 when.reporter.......(progress-re
188a0 70 6f 72 74 65 72 2d 75 70 64 61 74 65 20 72 65 70 6f 72 74 65 72 29 29 0a 20 20 20 20 3b 3b 20 porter-update.reporter)).....;;.
188c0 75 70 64 61 74 65 20 6e 6f 64 65 20 73 74 61 74 75 73 20 69 67 6e 6f 72 65 20 73 74 61 74 75 73 update.node.status.ignore.status
188e0 20 65 69 74 68 65 72 20 69 6e 68 65 72 65 74 65 64 20 66 72 6f 6d 20 74 68 65 0a 20 20 20 20 3b .either.inhereted.from.the.....;
18900 3b 20 70 61 72 65 6e 74 20 6f 72 20 74 68 65 20 6f 77 6e 0a 20 20 20 20 28 77 68 65 6e 20 73 68 ;.parent.or.the.own.....(when.sh
18920 6f 75 6c 64 2d 69 67 6e 6f 72 65 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 ould-ignore.......(setf.(ztree-d
18940 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 20 27 69 67 6e 6f 72 65 iff-node-different.node).'ignore
18960 29 29 0a 20 20 20 20 3b 3b 20 66 69 72 73 74 20 2d 20 61 64 64 69 6e 67 20 61 6c 6c 20 65 6e 74 )).....;;.first.-.adding.all.ent
18980 72 69 65 73 20 66 72 6f 6d 20 6c 65 66 74 20 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 28 64 6f ries.from.left.directory.....(do
189a0 6c 69 73 74 20 28 66 69 6c 65 31 20 6c 69 73 74 31 29 0a 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 list.(file1.list1).......;;.for.
189c0 65 76 65 72 79 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 64 69 72 65 63 74 6f every.entry.in.the.first.directo
189e0 72 79 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 61 72 65 20 63 72 65 61 74 69 6e 67 20 74 68 65 20 ry.......;;.we.are.creating.the.
18a00 6e 6f 64 65 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 69 6d 70 6c 65 2d 6e 61 6d 65 20 28 node.......(let*.((simple-name.(
18a20 7a 74 72 65 65 2d 66 69 6c 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 66 69 6c 65 31 29 29 0a 20 20 ztree-file-short-name.file1))...
18a40 20 20 20 20 20 20 20 20 20 20 20 28 69 73 64 69 72 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 ...........(isdir.(file-director
18a60 79 2d 70 20 66 69 6c 65 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 6e 64 y-p.file1))..............;;.find
18a80 20 69 66 20 74 68 65 20 66 69 6c 65 20 69 73 20 69 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 64 69 .if.the.file.is.in.the.second.di
18aa0 72 65 63 74 6f 72 79 20 61 6e 64 20 74 68 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 rectory.and.the.type............
18ac0 20 20 3b 3b 20 69 73 20 74 68 65 20 73 61 6d 65 20 2d 20 69 2e 65 2e 20 62 6f 74 68 20 61 72 65 ..;;.is.the.same.-.i.e..both.are
18ae0 20 64 69 72 65 63 74 6f 72 69 65 73 20 6f 72 20 62 6f 74 68 20 61 72 65 20 66 69 6c 65 73 0a 20 .directories.or.both.are.files..
18b00 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 32 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d ............(file2.(ztree-diff-m
18b20 6f 64 65 6c 2d 66 69 6e 64 2d 69 6e 2d 66 69 6c 65 73 20 6c 69 73 74 32 20 73 69 6d 70 6c 65 2d odel-find-in-files.list2.simple-
18b40 6e 61 6d 65 20 69 73 64 69 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 72 65 name.isdir))..............;;.cre
18b60 61 74 65 20 61 20 63 68 69 6c 64 2e 20 54 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 20 69 73 ate.a.child..The.current.node.is
18b80 20 61 20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 65 77 20 62 79 .a.parent..............;;.new.by
18ba0 20 64 65 66 61 75 6c 74 20 2d 20 77 69 6c 6c 20 62 65 20 6f 76 65 72 72 69 64 65 6e 20 62 65 6c .default.-.will.be.overriden.bel
18bc0 6f 77 20 69 66 20 6e 65 63 65 73 73 61 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 ow.if.necessary..............(ch
18be0 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f ild...............(ztree-diff-no
18c00 64 65 2d 63 72 65 61 74 65 20 6e 6f 64 65 20 66 69 6c 65 31 20 66 69 6c 65 32 20 63 68 69 6c 64 de-create.node.file1.file2.child
18c20 72 65 6e 2d 73 74 61 74 75 73 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 75 70 64 61 74 65 20 ren-status))).........;;.update.
18c40 63 68 69 6c 64 20 6f 77 6e 20 69 67 6e 6f 72 65 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 child.own.ignore.status.........
18c60 28 77 68 65 6e 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 68 6f 75 6c 64 2d 69 (when.(ztree-diff-model-should-i
18c80 67 6e 6f 72 65 20 63 68 69 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 gnore.child)...........(setf.(zt
18ca0 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 69 6c 64 29 20 27 ree-diff-node-different.child).'
18cc0 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 65 78 69 73 74 73 20 6f 6e ignore)).........;;.if.exists.on
18ce0 20 61 20 72 69 67 68 74 20 73 69 64 65 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 74 79 70 65 .a.right.side.with.the.same.type
18d00 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 ,.........;;.remove.from.the.lis
18d20 74 20 6f 66 20 66 69 6c 65 73 20 6f 6e 20 74 68 65 20 72 69 67 68 74 20 73 69 64 65 0a 20 20 20 t.of.files.on.the.right.side....
18d40 20 20 20 20 20 28 77 68 65 6e 20 66 69 6c 65 32 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 .....(when.file2...........(setf
18d60 20 6c 69 73 74 32 20 28 63 6c 2d 64 65 6c 65 74 65 20 66 69 6c 65 32 20 6c 69 73 74 32 20 3a 74 .list2.(cl-delete.file2.list2.:t
18d80 65 73 74 20 23 27 73 74 72 69 6e 67 2d 65 71 75 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 est.#'string-equal))).........(c
18da0 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 77 68 65 6e 20 65 78 69 73 74 20 6a 75 73 74 20 ond..........;;.when.exist.just.
18dc0 6f 6e 20 61 20 6c 65 66 74 20 73 69 64 65 20 61 6e 64 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 on.a.left.side.and.is.a.director
18de0 79 2c 20 61 64 64 20 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 69 73 64 69 72 20 y,.add.all..........((and.isdir.
18e00 28 6e 6f 74 20 66 69 6c 65 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 (not.file2))...........(setf.(zt
18e20 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 63 68 69 6c 64 29 0a 20 20 ree-diff-node-children.child)...
18e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d ..............(ztree-diff-model-
18e60 73 75 62 74 72 65 65 20 63 68 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 subtree.child...................
18e80 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 69 6c 65 31 0a 20 20 ........................file1...
18ea0 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 ................................
18ec0 20 20 20 20 20 20 20 20 27 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........'left...................
18ee0 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 7a 74 72 65 65 2d 64 ........................(ztree-d
18f00 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 69 6c 64 29 29 29 29 0a 20 20 20 iff-node-different.child))))....
18f20 20 20 20 20 20 20 3b 3b 20 69 66 20 31 29 20 65 78 69 73 74 73 20 6f 6e 20 62 6f 74 68 20 73 69 ......;;.if.1).exists.on.both.si
18f40 64 65 73 20 61 6e 64 20 32 29 20 69 74 20 69 73 20 61 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 des.and.2).it.is.a.file.........
18f60 20 3b 3b 20 61 6e 64 20 33 29 20 6e 6f 74 20 69 67 6e 6f 72 65 64 20 66 69 6c 65 0a 20 20 20 20 .;;.and.3).not.ignored.file.....
18f80 20 20 20 20 20 28 28 61 6e 64 20 66 69 6c 65 32 20 28 6e 6f 74 20 69 73 64 69 72 29 20 28 6e 6f .....((and.file2.(not.isdir).(no
18fa0 74 20 28 65 71 6c 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e t.(eql.(ztree-diff-node-differen
18fc0 74 20 63 68 69 6c 64 29 20 27 69 67 6e 6f 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 t.child).'ignore)))...........(s
18fe0 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 etf.(ztree-diff-node-different.c
19000 68 69 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 hild).................(ztree-dif
19020 66 2d 6d 6f 64 65 6c 2d 66 69 6c 65 73 2d 65 71 75 61 6c 20 66 69 6c 65 31 20 66 69 6c 65 32 29 f-model-files-equal.file1.file2)
19040 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 65 78 69 73 74 73 20 6f 6e 20 62 6f 74 68 ))..........;;.if.exists.on.both
19060 20 73 69 64 65 73 20 61 6e 64 20 69 74 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 2c 20 74 72 .sides.and.it.is.a.directory,.tr
19080 61 76 65 72 73 65 20 66 75 72 74 68 65 72 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 66 69 averse.further..........((and.fi
190a0 6c 65 32 20 69 73 64 69 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 le2.isdir)...........(ztree-diff
190c0 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 20 63 68 69 6c 64 29 29 29 0a 20 20 20 20 20 20 20 20 -node-recreate.child))).........
190e0 3b 3b 20 70 75 73 68 20 74 68 65 20 63 72 65 61 74 65 64 20 6e 6f 64 65 20 74 6f 20 74 68 65 20 ;;.push.the.created.node.to.the.
19100 63 68 69 6c 64 72 65 6e 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 68 69 6c children.list.........(push.chil
19120 64 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 20 20 20 20 3b 3b 20 73 65 63 6f 6e 64 20 2d 20 61 64 d.children))).....;;.second.-.ad
19140 64 69 6e 67 20 65 6e 74 72 69 65 73 20 66 72 6f 6d 20 74 68 65 20 72 69 67 68 74 20 64 69 72 65 ding.entries.from.the.right.dire
19160 63 74 6f 72 79 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 70 72 65 73 65 6e 74 0a 20 20 20 20 ctory.which.are.not.present.....
19180 3b 3b 20 69 6e 20 74 68 65 20 6c 65 66 74 20 64 69 72 65 63 74 6f 72 79 0a 20 20 20 20 28 64 6f ;;.in.the.left.directory.....(do
191a0 6c 69 73 74 20 28 66 69 6c 65 32 20 6c 69 73 74 32 29 0a 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 list.(file2.list2).......;;.for.
191c0 65 76 65 72 79 20 65 6e 74 72 79 20 69 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 64 69 72 65 63 74 every.entry.in.the.second.direct
191e0 6f 72 79 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 61 72 65 20 63 72 65 61 74 69 6e 67 20 74 68 65 ory.......;;.we.are.creating.the
19200 20 6e 6f 64 65 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 69 73 64 69 72 20 28 66 69 6c 65 2d .node.......(let*.((isdir.(file-
19220 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 directory-p.file2)).............
19240 20 3b 3b 20 63 72 65 61 74 65 20 74 68 65 20 63 68 69 6c 64 20 74 6f 20 62 65 20 61 64 64 65 64 .;;.create.the.child.to.be.added
19260 20 74 6f 20 74 68 65 20 72 65 73 75 6c 74 73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 .to.the.results.list............
19280 20 20 28 63 68 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 ..(child...............(ztree-di
192a0 66 66 2d 6e 6f 64 65 2d 63 72 65 61 74 65 20 6e 6f 64 65 20 6e 69 6c 20 66 69 6c 65 32 20 63 68 ff-node-create.node.nil.file2.ch
192c0 69 6c 64 72 65 6e 2d 73 74 61 74 75 73 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 75 70 64 61 ildren-status))).........;;.upda
192e0 74 65 20 69 67 6e 6f 72 65 20 73 74 61 74 75 73 20 6f 66 20 74 68 65 20 63 68 69 6c 64 0a 20 20 te.ignore.status.of.the.child...
19300 20 20 20 20 20 20 28 77 68 65 6e 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 68 ......(when.(ztree-diff-model-sh
19320 6f 75 6c 64 2d 69 67 6e 6f 72 65 20 63 68 69 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 ould-ignore.child)...........(se
19340 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 tf.(ztree-diff-node-different.ch
19360 69 6c 64 29 20 27 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 69 ild).'ignore))...........;;.if.i
19380 74 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 79 2c 20 73 65 74 20 74 68 65 20 77 68 6f 6c 65 20 t.is.a.directory,.set.the.whole.
193a0 73 75 62 74 72 65 65 20 74 6f 20 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 28 77 68 65 subtree.to.children.........(whe
193c0 6e 20 69 73 64 69 72 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 n.isdir...........(setf.(ztree-d
193e0 69 66 66 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 63 68 69 6c 64 29 0a 20 20 20 20 20 20 20 iff-node-children.child)........
19400 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 73 75 62 74 72 .........(ztree-diff-model-subtr
19420 65 65 20 63 68 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ee.child........................
19440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 32 0a 20 20 20 20 20 20 20 ...................file2........
19460 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 ................................
19480 20 20 20 27 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...'right.......................
194a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 69 66 66 2d ....................(ztree-diff-
194c0 6e 6f 64 65 2d 64 69 66 66 65 72 65 6e 74 20 63 68 69 6c 64 29 29 29 29 0a 20 20 20 20 20 20 20 node-different.child))))........
194e0 20 3b 3b 20 70 75 73 68 20 74 68 65 20 63 72 65 61 74 65 64 20 6e 6f 64 65 20 74 6f 20 74 68 65 .;;.push.the.created.node.to.the
19500 20 72 65 73 75 6c 74 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 68 69 6c 64 .result.list.........(push.child
19520 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 20 20 20 20 3b 3b 20 66 69 6e 61 6c 6c 79 20 73 65 74 20 .children))).....;;.finally.set.
19540 64 69 66 66 65 72 65 6e 74 20 73 74 61 74 75 73 20 62 61 73 65 64 20 6f 6e 20 61 6c 6c 20 63 68 different.status.based.on.all.ch
19560 69 6c 64 72 65 6e 0a 20 20 20 20 3b 3b 20 64 65 70 65 6e 64 69 6e 67 20 69 66 20 74 68 65 20 6e ildren.....;;.depending.if.the.n
19580 6f 64 65 20 73 68 6f 75 6c 64 20 70 61 72 74 69 63 69 70 61 74 65 20 69 6e 20 6f 76 65 72 61 6c ode.should.participate.in.overal
195a0 6c 20 72 65 73 75 6c 74 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 73 68 6f 75 6c 64 2d 69 67 6e 6f l.result.....(unless.should-igno
195c0 72 65 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d re.......(setf.(ztree-diff-node-
195e0 64 69 66 66 65 72 65 6e 74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d different.node).............(cl-
19600 72 65 64 75 63 65 20 23 27 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 75 70 64 61 74 65 reduce.#'ztree-diff-model-update
19620 2d 64 69 66 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 -diff........................chi
19640 6c 64 72 65 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 3a 69 6e ldren........................:in
19660 69 74 69 61 6c 2d 76 61 6c 75 65 20 27 73 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 itial-value.'same...............
19680 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 27 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 64 .........:key.'ztree-diff-node-d
196a0 69 66 66 65 72 65 6e 74 29 29 29 0a 20 20 20 20 3b 3b 20 61 6e 64 20 73 65 74 20 63 68 69 6c 64 ifferent))).....;;.and.set.child
196c0 72 65 6e 0a 20 20 20 20 28 73 65 74 66 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 63 ren.....(setf.(ztree-diff-node-c
196e0 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 0a 0a 28 64 65 66 hildren.node).children)))...(def
19700 75 6e 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2d 75 70 64 61 74 65 2d 6e 6f 64 65 20 un.ztree-diff-model-update-node.
19720 28 6e 6f 64 65 29 0a 20 20 22 52 65 66 72 65 73 68 20 74 68 65 20 4e 4f 44 45 2e 22 0a 20 20 28 (node)..."Refresh.the.NODE."...(
19740 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 2d 72 65 63 72 65 61 74 65 2d 77 69 74 68 2d 70 72 ztree-diff-node-recreate-with-pr
19760 6f 67 72 65 73 73 20 6e 6f 64 65 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 69 ogress.node))....(defun.ztree-di
19780 66 66 2d 6d 6f 64 65 6c 2d 73 65 74 2d 69 67 6e 6f 72 65 2d 66 75 6e 20 28 69 67 6e 6f 72 65 2d ff-model-set-ignore-fun.(ignore-
197a0 70 29 0a 20 20 22 53 65 74 20 74 68 65 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 69 67 6e 6f 72 p)..."Set.the.buffer-local.ignor
197c0 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 49 47 4e 4f 52 45 2d 50 2e 0a 49 67 6e 6f 72 65 20 66 e.function.to.IGNORE-P..Ignore.f
197e0 75 6e 63 74 69 6f 6e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 6f 6e 65 20 61 72 67 unction.is.a.function.of.one.arg
19800 75 6d 65 6e 74 20 28 7a 74 72 65 65 2d 64 69 66 66 2d 6e 6f 64 65 29 0a 77 68 69 63 68 20 72 65 ument.(ztree-diff-node).which.re
19820 74 75 72 6e 73 20 74 20 69 66 20 74 68 65 20 6e 6f 64 65 20 73 68 6f 75 6c 64 20 62 65 20 69 67 turns.t.if.the.node.should.be.ig
19840 6e 6f 72 65 64 20 28 6c 69 6b 65 20 66 69 6c 65 73 20 73 74 61 72 74 69 6e 67 0a 77 69 74 68 20 nored.(like.files.starting.with.
19860 64 6f 74 20 65 74 63 29 2e 22 0a 20 20 28 73 65 74 66 20 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f dot.etc)."...(setf.ztree-diff-mo
19880 64 65 6c 2d 69 67 6e 6f 72 65 2d 66 75 6e 20 69 67 6e 6f 72 65 2d 70 29 29 0a 0a 0a 28 70 72 6f del-ignore-fun.ignore-p))...(pro
198a0 76 69 64 65 20 27 7a 74 72 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 29 0a 0a 3b 3b 3b 20 7a 74 72 vide.'ztree-diff-model)..;;;.ztr
198c0 65 65 2d 64 69 66 66 2d 6d 6f 64 65 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 ee-diff-model.el.ends.here......
198e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
199a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
199c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
199e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a00 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2d 76 69 65 77 2e 65 6c 00 00 00 00 00 00 00 ztree-1.0.6/ztree-view.el.......
19a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a60 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
19a80 30 30 37 34 36 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 37 34 30 00 20 30 00 00 00 0074600.00000000000.013740..0...
19aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19b00 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...................
19b20 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...................
19b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19c00 3b 3b 3b 20 7a 74 72 65 65 2d 76 69 65 77 2e 65 6c 20 2d 2d 2d 20 54 65 78 74 20 6d 6f 64 65 20 ;;;.ztree-view.el.---.Text.mode.
19c20 74 72 65 65 20 76 69 65 77 20 28 62 75 66 66 65 72 29 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 tree.view.(buffer).-*-.lexical-b
19c40 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 29 inding:.t;.-*-..;;.Copyright.(C)
19c60 20 32 30 31 33 2d 32 30 32 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 .2013-2021..Free.Software.Founda
19c80 74 69 6f 6e 2c 20 49 6e 63 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 41 6c 65 78 65 79 20 tion,.Inc..;;.;;.Author:.Alexey.
19ca0 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f Veretennikov.<alexey.veretenniko
19cc0 76 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 32 30 31 33 v@gmail.com>.;;.;;.Created:.2013
19ce0 2d 31 31 2d 31 31 0a 3b 3b 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 6c 65 73 20 74 6f 6f -11-11.;;.;;.Keywords:.files.too
19d00 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 6f ls.;;.URL:.https://github.com/fo
19d20 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3a 20 47 4e urier/ztree.;;.Compatibility:.GN
19d40 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 U.Emacs.24.x.;;.;;.This.file.is.
19d60 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 part.of.GNU.Emacs..;;.;;.GNU.Ema
19d80 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e 20 72 65 64 cs.is.free.software:.you.can.red
19da0 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 istribute.it.and/or.modify.;;.it
19dc0 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .under.the.terms.of.the.GNU.Gene
19de0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 ral.Public.License.as.published.
19e00 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 by.;;.the.Free.Software.Foundati
19e20 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 on,.either.version.3.of.the.Lice
19e40 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 nse,.or.;;.(at.your.option).any.
19e60 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 45 6d 61 63 73 20 69 later.version..;;.;;.GNU.Emacs.i
19e80 73 20 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 s.distributed.in.the.hope.that.i
19ea0 74 20 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 t.will.be.useful,.;;.but.WITHOUT
19ec0 20 41 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 .ANY.WARRANTY;.without.even.the.
19ee0 69 6d 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 implied.warranty.of.;;.MERCHANTA
19f00 42 49 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 BILITY.or.FITNESS.FOR.A.PARTICUL
19f20 41 52 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 AR.PURPOSE...See.the.;;.GNU.Gene
19f40 72 61 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 ral.Public.License.for.more.deta
19f60 69 6c 73 2e 0a 3b 3b 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 ils..;;.;;.You.should.have.recei
19f80 76 65 64 20 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 ved.a.copy.of.the.GNU.General.Pu
19fa0 62 6c 69 63 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 blic.License.;;.along.with.GNU.E
19fc0 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 macs...If.not,.see.<http://www.g
19fe0 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e nu.org/licenses/>..;;.;;;.Commen
1a000 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f tary:.;;.;;.Add.the.following.to
1a020 20 79 6f 75 72 20 2e 65 6d 61 63 73 20 66 69 6c 65 3a 0a 3b 3b 0a 3b 3b 20 28 70 75 73 68 20 28 .your..emacs.file:.;;.;;.(push.(
1a040 73 75 62 73 74 69 74 75 74 65 2d 69 6e 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 70 61 74 68 2d 74 6f substitute-in-file-name."path-to
1a060 2d 7a 74 72 65 65 2d 64 69 72 65 63 74 6f 72 79 22 29 20 6c 6f 61 64 2d 70 61 74 68 29 0a 3b 3b -ztree-directory").load-path).;;
1a080 20 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 76 69 65 77 29 0a 3b 3b 0a 3b 3b 20 43 61 6c .(require.'ztree-view).;;.;;.Cal
1a0a0 6c 20 74 68 65 20 7a 74 72 65 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 75 6e 63 74 69 6f 6e l.the.ztree.interactive.function
1a0c0 3a 0a 3b 3b 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 3a :.;;.Use.the.following.function:
1a0e0 20 7a 74 72 65 65 2d 76 69 65 77 0a 3b 3b 0a 3b 3b 3b 20 49 73 73 75 65 73 3a 0a 3b 3b 0a 3b 3b .ztree-view.;;.;;;.Issues:.;;.;;
1a100 3b 20 54 4f 44 4f 3a 0a 3b 3b 0a 3b 3b 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65 76 61 6c 2d 77 ;.TODO:.;;.;;.;;;.Code:..(eval-w
1a120 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 hen-compile.(require.'cl-lib)).(
1a140 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 require.'subr-x).(require.'ztree
1a160 2d 75 74 69 6c 29 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 70 72 6f 74 6f 63 6f 6c 29 -util).(require.'ztree-protocol)
1a180 0a 3b 3b 0a 3b 3b 20 47 6c 6f 62 61 6c 73 0a 3b 3b 0a 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 .;;.;;.Globals.;;..(defvar.ztree
1a1a0 2d 64 72 61 77 2d 75 6e 69 63 6f 64 65 2d 6c 69 6e 65 73 20 6e 69 6c 0a 20 20 22 49 66 20 73 65 -draw-unicode-lines.nil..."If.se
1a1c0 74 20 66 6f 72 63 65 73 20 7a 74 72 65 65 20 74 6f 20 64 72 61 77 20 6c 69 6e 65 73 20 77 69 74 t.forces.ztree.to.draw.lines.wit
1a1e0 68 20 75 6e 69 63 6f 64 65 20 63 68 61 72 61 63 74 65 72 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 h.unicode.characters.")..(defvar
1a200 20 7a 74 72 65 65 2d 73 68 6f 77 2d 6e 75 6d 62 65 72 2d 6f 66 2d 63 68 69 6c 64 72 65 6e 20 6e .ztree-show-number-of-children.n
1a220 69 6c 0a 20 20 22 49 66 20 73 65 74 20 66 6f 72 63 65 73 20 7a 74 72 65 65 20 73 68 6f 77 20 6e il..."If.set.forces.ztree.show.n
1a240 75 6d 62 65 72 20 6f 66 20 63 68 69 6c 64 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 62 72 umber.of.child.entries.in.the.br
1a260 61 63 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 65 78 70 aces.")..(defvar-local.ztree-exp
1a280 61 6e 64 65 64 2d 6e 6f 64 65 73 2d 6c 69 73 74 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f anded-nodes-list.nil..."A.list.o
1a2a0 66 20 45 78 70 61 6e 64 65 64 20 6e 6f 64 65 73 20 28 69 2e 65 2e 20 64 69 72 65 63 74 6f 72 69 f.Expanded.nodes.(i.e..directori
1a2c0 65 73 29 20 65 6e 74 72 69 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 es).entries.")..(defvar-local.zt
1a2e0 72 65 65 2d 73 74 61 72 74 2d 6e 6f 64 65 20 6e 69 6c 0a 20 20 22 53 74 61 72 74 20 6e 6f 64 65 ree-start-node.nil..."Start.node
1a300 28 69 2e 65 2e 20 64 69 72 65 63 74 6f 72 79 29 20 66 6f 72 20 74 68 65 20 77 69 6e 64 6f 77 2e (i.e..directory).for.the.window.
1a320 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 6f 2d ")..(defvar-local.ztree-line-to-
1a340 6e 6f 64 65 2d 74 61 62 6c 65 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 74 75 70 6c 65 73 node-table.nil..."List.of.tuples
1a360 20 77 69 74 68 20 66 75 6c 6c 20 6e 6f 64 65 28 69 2e 65 2e 20 66 69 6c 65 2f 64 69 72 65 63 74 .with.full.node(i.e..file/direct
1a380 6f 72 79 20 6e 61 6d 65 20 61 6e 64 20 74 68 65 20 6c 69 6e 65 2e 22 29 0a 0a 28 64 65 66 76 61 ory.name.and.the.line.")..(defva
1a3a0 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 20 6e 69 6c 0a 20 20 22 r-local.ztree-start-line.nil..."
1a3c0 49 6e 64 65 78 20 6f 66 20 74 68 65 20 73 74 61 72 74 20 6c 69 6e 65 20 2d 20 74 68 65 20 72 6f Index.of.the.start.line.-.the.ro
1a3e0 6f 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 70 61 72 65 6e ot.")..(defvar-local.ztree-paren
1a400 74 2d 6c 69 6e 65 73 2d 61 72 72 61 79 20 6e 69 6c 0a 20 20 22 41 72 72 61 79 20 6f 66 20 70 61 t-lines-array.nil..."Array.of.pa
1a420 72 65 6e 74 20 6c 69 6e 65 73 2e 0a 54 68 65 20 69 74 68 20 76 61 6c 75 65 20 6f 66 20 74 68 65 rent.lines..The.ith.value.of.the
1a440 20 61 72 72 61 79 20 69 73 20 74 68 65 20 70 61 72 65 6e 74 20 6c 69 6e 65 20 66 6f 72 20 6c 69 .array.is.the.parent.line.for.li
1a460 6e 65 20 69 2e 0a 49 66 20 69 74 68 20 76 61 6c 75 65 20 69 73 20 69 20 2d 20 69 74 20 69 73 20 ne.i..If.ith.value.is.i.-.it.is.
1a480 74 68 65 20 72 6f 6f 74 20 6c 69 6e 65 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a the.root.line")..(defvar-local.z
1a4a0 74 72 65 65 2d 63 6f 75 6e 74 2d 73 75 62 73 65 71 75 65 6e 74 2d 62 73 20 6e 69 6c 0a 20 20 22 tree-count-subsequent-bs.nil..."
1a4c0 43 6f 75 6e 74 65 72 20 66 6f 72 20 74 68 65 20 73 75 62 73 65 71 75 65 73 74 20 42 53 20 6b 65 Counter.for.the.subsequest.BS.ke
1a4e0 79 73 20 28 74 6f 20 69 64 65 6e 74 69 66 79 20 64 6f 75 62 6c 65 20 42 53 29 2e 0a 55 73 65 64 ys.(to.identify.double.BS)..Used
1a500 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 6e 6f 74 20 74 6f 20 75 73 65 20 63 6c 20 70 61 63 6b 61 .in.order.to.not.to.use.cl.packa
1a520 67 65 20 61 6e 64 20 60 6c 65 78 69 63 61 6c 2d 6c 65 74 27 22 29 0a 0a 28 64 65 66 76 61 72 2d ge.and.`lexical-let'")..(defvar-
1a540 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 2d 70 72 6f 70 65 72 74 69 65 73 local.ztree-line-tree-properties
1a560 20 6e 69 6c 0a 20 20 22 48 61 73 68 20 74 61 62 6c 65 2c 20 77 69 74 68 20 6b 65 79 20 2d 20 6c .nil..."Hash.table,.with.key.-.l
1a580 69 6e 65 20 6e 75 6d 62 65 72 2c 20 76 61 6c 75 65 20 2d 20 70 72 6f 70 65 72 74 79 20 6c 69 73 ine.number,.value.-.property.lis
1a5a0 74 20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 0a 54 68 65 20 70 72 6f 70 65 72 74 79 20 6c 69 73 74 t.of.the.line..The.property.list
1a5c0 20 68 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 3a 0a 2d 20 73 69 64 65 20 .has.the.following.keys:.-.side.
1a5e0 28 60 6c 65 66 74 27 2c 20 60 72 69 67 68 74 27 2c 20 60 62 6f 74 68 27 29 2e 0a 55 73 65 64 20 (`left',.`right',.`both')..Used.
1a600 66 6f 72 20 32 2d 73 69 64 65 20 74 72 65 65 73 2c 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 69 for.2-side.trees,.to.determine.i
1a620 66 20 74 68 65 20 6e 6f 64 65 20 65 78 69 73 74 73 20 6f 6e 20 6c 65 66 74 20 6f 72 20 72 69 67 f.the.node.exists.on.left.or.rig
1a640 68 74 0a 6f 72 20 62 6f 74 68 20 73 69 64 65 73 0a 2d 20 6f 66 66 73 65 74 20 2d 20 74 68 65 20 ht.or.both.sides.-.offset.-.the.
1a660 63 6f 6c 75 6d 6e 20 74 68 65 72 65 20 74 68 65 20 74 65 78 74 20 73 74 61 72 74 73 20 22 29 0a column.there.the.text.starts.").
1a680 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 .(defvar-local.ztree-prev-positi
1a6a0 6f 6e 20 6e 69 6c 0a 20 20 22 54 68 65 20 63 6f 6e 73 20 70 61 69 72 20 6f 66 20 74 68 65 20 70 on.nil..."The.cons.pair.of.the.p
1a6c0 72 65 76 69 6f 75 73 20 6c 69 6e 65 20 61 6e 64 20 63 6f 6c 75 6d 6e 2e 20 55 73 65 64 0a 74 6f revious.line.and.column..Used.to
1a6e0 20 72 65 73 74 6f 72 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 20 61 66 74 65 72 20 72 .restore.cursor.position.after.r
1a700 65 66 72 65 73 68 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 6c 61 efresh")..(defvar-local.ztree-la
1a720 73 74 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 20 6e 69 6c 0a 20 20 22 54 68 65 20 77 69 6e 64 6f st-window-width.nil..."The.windo
1a740 77 20 77 69 64 74 68 20 61 74 20 74 68 65 20 6c 61 73 74 20 72 65 66 72 65 73 68 22 29 0a 0a 28 w.width.at.the.last.refresh")..(
1a760 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 20 6e defvar-local.ztree-two-sided-p.n
1a780 69 6c 0a 20 20 22 49 66 20 74 68 65 20 74 72 65 65 20 69 73 20 32 20 73 69 64 65 64 2c 20 32 20 il..."If.the.tree.is.2.sided,.2.
1a7a0 74 72 65 65 73 20 73 68 61 6c 6c 20 62 65 20 64 72 61 77 6e 20 73 69 64 65 20 62 79 20 73 69 64 trees.shall.be.drawn.side.by.sid
1a7c0 65 22 29 0a 0a 28 64 65 66 2d 7a 74 72 65 65 2d 6c 6f 63 61 6c 2d 66 75 6e 20 7a 74 72 65 65 2d e")..(def-ztree-local-fun.ztree-
1a7e0 74 72 65 65 2d 68 65 61 64 65 72 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 69 6e tree-header..."Function.insertin
1a800 67 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 74 6f 20 74 68 65 20 74 72 65 65 20 62 75 66 66 65 g.the.header.into.the.tree.buffe
1a820 72 2e 0a 4d 55 53 54 20 69 6e 73 74 65 72 20 6e 65 77 6c 69 6e 65 20 61 74 20 74 68 65 20 65 6e r..MUST.inster.newline.at.the.en
1a840 64 21 22 29 0a 0a 3b 3b 0a 3b 3b 20 4d 61 6a 6f 72 20 6d 6f 64 65 20 64 65 66 69 6e 69 74 69 6f d!")..;;.;;.Major.mode.definitio
1a860 6e 73 0a 3b 3b 0a 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 ns.;;..(defvar.ztree-mode-map...
1a880 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 (let.((map.(make-sparse-keymap))
1a8a0 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 5c 72 22 29 ).....(define-key.map.(kbd."\r")
1a8c0 20 27 7a 74 72 65 65 2d 70 65 72 66 6f 72 6d 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 64 65 66 .'ztree-perform-action).....(def
1a8e0 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 50 43 22 29 20 27 7a 74 72 65 65 2d 70 ine-key.map.(kbd."SPC").'ztree-p
1a900 65 72 66 6f 72 6d 2d 73 6f 66 74 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d erform-soft-action).....(define-
1a920 6b 65 79 20 6d 61 70 20 5b 64 6f 75 62 6c 65 2d 6d 6f 75 73 65 2d 31 5d 20 27 7a 74 72 65 65 2d key.map.[double-mouse-1].'ztree-
1a940 70 65 72 66 6f 72 6d 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 perform-action).....(define-key.
1a960 6d 61 70 20 28 6b 62 64 20 22 54 41 42 22 29 20 27 7a 74 72 65 65 2d 6a 75 6d 70 2d 73 69 64 65 map.(kbd."TAB").'ztree-jump-side
1a980 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 67 22 29 20 ).....(define-key.map.(kbd."g").
1a9a0 27 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 64 65 66 69 'ztree-refresh-buffer).....(defi
1a9c0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 78 22 29 20 27 7a 74 72 65 65 2d 74 6f 67 67 ne-key.map.(kbd."x").'ztree-togg
1a9e0 6c 65 2d 65 78 70 61 6e 64 2d 73 75 62 74 72 65 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b le-expand-subtree).....(define-k
1aa00 65 79 20 6d 61 70 20 5b 72 65 6d 61 70 20 6e 65 78 74 2d 6c 69 6e 65 5d 20 27 7a 74 72 65 65 2d ey.map.[remap.next-line].'ztree-
1aa20 6e 65 78 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b next-line).....(define-key.map.[
1aa40 72 65 6d 61 70 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 5d 20 27 7a 74 72 65 65 2d 70 72 65 76 remap.previous-line].'ztree-prev
1aa60 69 6f 75 73 2d 6c 69 6e 65 29 0a 20 20 20 20 28 69 66 20 77 69 6e 64 6f 77 2d 73 79 73 74 65 6d ious-line).....(if.window-system
1aa80 0a 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c .........(define-key.map.(kbd."<
1aaa0 62 61 63 6b 73 70 61 63 65 3e 22 29 20 27 7a 74 72 65 65 2d 6d 6f 76 65 2d 75 70 2d 69 6e 2d 74 backspace>").'ztree-move-up-in-t
1aac0 72 65 65 29 0a 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 5c 31 37 37 ree).......(define-key.map."\177
1aae0 22 20 27 7a 74 72 65 65 2d 6d 6f 76 65 2d 75 70 2d 69 6e 2d 74 72 65 65 29 29 0a 20 20 20 20 6d ".'ztree-move-up-in-tree)).....m
1ab00 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 60 7a 74 72 65 65 2d 6d 6f 64 65 27 2e 22 ap)..."Keymap.for.`ztree-mode'."
1ab20 29 0a 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 66 61 63 65 0a 20 20 )...(defface.ztreep-node-face...
1ab40 27 28 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 20 28 3a 66 6f 72 65 67 72 6f '((((background.dark)).(:foregro
1ab60 75 6e 64 20 22 23 66 66 66 66 66 66 22 29 29 0a 20 20 20 20 28 28 28 74 79 70 65 20 6e 69 6c 29 und."#ffffff")).....(((type.nil)
1ab80 29 20 20 20 20 20 20 20 20 28 3a 69 6e 68 65 72 69 74 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 )........(:inherit.'font-lock-fu
1aba0 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 29 29 0a 20 20 20 20 28 74 20 20 20 20 20 20 20 nction-name-face)).....(t.......
1abc0 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 42 6c 75 65 22 29 ............(:foreground."Blue")
1abe0 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 65 78 70 61 6e 64 61 62 6c 65 20 ))..."*Face.used.for.expandable.
1ac00 65 6e 74 72 69 65 73 28 64 69 72 65 63 74 6f 72 69 65 73 20 65 74 63 29 20 69 6e 20 5a 74 72 65 entries(directories.etc).in.Ztre
1ac20 65 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 20 3a 67 72 6f 75 e.buffer."...:group.'Ztree.:grou
1ac40 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 p.'font-lock-highlighting-faces)
1ac60 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 66 61 63 65 20 27 7a 74 72 65 65 .(defvar.ztreep-node-face.'ztree
1ac80 70 2d 6e 6f 64 65 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 6c 65 p-node-face)..(defface.ztreep-le
1aca0 61 66 2d 66 61 63 65 0a 20 20 27 28 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 af-face...'((((background.dark))
1acc0 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 63 79 61 6e 31 22 29 29 0a 20 20 20 20 28 28 28 74 .(:foreground."cyan1")).....(((t
1ace0 79 70 65 20 6e 69 6c 29 29 20 20 20 20 20 20 20 20 28 3a 69 6e 68 65 72 69 74 20 27 66 6f 6e 74 ype.nil))........(:inherit.'font
1ad00 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 63 65 29 29 0a 20 20 20 20 28 -lock-variable-name-face)).....(
1ad20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 t...................(:foreground
1ad40 20 22 64 61 72 6b 62 6c 75 65 22 29 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 ."darkblue")))..."*Face.used.for
1ad60 20 6e 6f 74 20 65 78 70 61 6e 64 61 62 6c 65 20 6e 6f 64 65 73 28 6c 65 61 66 73 2c 20 69 2e 65 .not.expandable.nodes(leafs,.i.e
1ad80 2e 20 66 69 6c 65 73 29 20 69 6e 20 5a 74 72 65 65 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 ..files).in.Ztree.buffer."...:gr
1ada0 6f 75 70 20 27 5a 74 72 65 65 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 oup.'Ztree.:group.'font-lock-hig
1adc0 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d hlighting-faces).(defvar.ztreep-
1ade0 6c 65 61 66 2d 66 61 63 65 20 27 7a 74 72 65 65 70 2d 6c 65 61 66 2d 66 61 63 65 29 0a 0a 28 64 leaf-face.'ztreep-leaf-face)..(d
1ae00 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 61 72 72 6f 77 2d 66 61 63 65 0a 20 20 27 28 28 28 28 efface.ztreep-arrow-face...'((((
1ae20 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 background.dark)).(:foreground."
1ae40 23 37 66 37 66 37 66 22 29 29 0a 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 #7f7f7f")).....(t...............
1ae60 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 38 64 38 64 38 64 22 29 29 29 0a 20 20 ....(:foreground."#8d8d8d")))...
1ae80 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 61 72 72 6f 77 73 20 69 6e 20 5a 74 72 65 65 20 "*Face.used.for.arrows.in.Ztree.
1aea0 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 20 3a 67 72 6f 75 70 20 buffer."...:group.'Ztree.:group.
1aec0 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 'font-lock-highlighting-faces).(
1aee0 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 61 72 72 6f 77 2d 66 61 63 65 20 27 7a 74 72 65 65 70 defvar.ztreep-arrow-face.'ztreep
1af00 2d 61 72 72 6f 77 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 65 20 7a 74 72 65 65 70 2d 65 78 -arrow-face)..(defface.ztreep-ex
1af20 70 61 6e 64 2d 73 69 67 6e 2d 66 61 63 65 0a 20 20 27 28 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 pand-sign-face...'((((background
1af40 20 64 61 72 6b 29 29 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 23 37 66 37 66 66 66 22 29 29 .dark)).(:foreground."#7f7fff"))
1af60 0a 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 66 6f 72 65 .....(t...................(:fore
1af80 67 72 6f 75 6e 64 20 22 23 38 64 38 64 38 64 22 29 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 ground."#8d8d8d")))..."*Face.use
1afa0 64 20 66 6f 72 20 65 78 70 61 6e 64 20 73 69 67 6e 20 5b 2b 5d 20 69 6e 20 5a 74 72 65 65 20 62 d.for.expand.sign.[+].in.Ztree.b
1afc0 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 65 65 20 3a 67 72 6f 75 70 20 27 uffer."...:group.'Ztree.:group.'
1afe0 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 66 61 63 65 73 29 0a 28 64 font-lock-highlighting-faces).(d
1b000 65 66 76 61 72 20 7a 74 72 65 65 70 2d 65 78 70 61 6e 64 2d 73 69 67 6e 2d 66 61 63 65 20 27 7a efvar.ztreep-expand-sign-face.'z
1b020 74 72 65 65 70 2d 65 78 70 61 6e 64 2d 73 69 67 6e 2d 66 61 63 65 29 0a 0a 28 64 65 66 66 61 63 treep-expand-sign-face)..(deffac
1b040 65 20 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 63 6f 75 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 66 61 63 e.ztreep-node-count-children-fac
1b060 65 0a 20 20 27 28 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 68 e...'((t...................(:inh
1b080 65 72 69 74 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 20 3a 73 6c erit.'font-lock-comment-face.:sl
1b0a0 61 6e 74 20 69 74 61 6c 69 63 29 29 29 0a 20 20 22 2a 46 61 63 65 20 75 73 65 64 20 66 6f 72 20 ant.italic)))..."*Face.used.for.
1b0c0 63 6f 75 6e 74 20 6f 66 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 69 6c 64 20 65 6e 74 72 69 65 73 count.of.number.of.child.entries
1b0e0 20 69 6e 20 5a 74 72 65 65 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 5a 74 72 .in.Ztree.buffer."...:group.'Ztr
1b100 65 65 20 3a 67 72 6f 75 70 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 68 69 67 68 6c 69 67 68 74 69 6e ee.:group.'font-lock-highlightin
1b120 67 2d 66 61 63 65 73 29 0a 28 64 65 66 76 61 72 20 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 63 6f 75 g-faces).(defvar.ztreep-node-cou
1b140 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 66 61 63 65 20 27 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 63 6f nt-children-face.'ztreep-node-co
1b160 75 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 66 61 63 65 29 0a 0a 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f unt-children-face)....;;;###auto
1b180 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 7a 74 72 65 65 2d load.(define-derived-mode.ztree-
1b1a0 6d 6f 64 65 20 73 70 65 63 69 61 6c 2d 6d 6f 64 65 20 22 5a 74 72 65 65 22 0a 20 20 22 41 20 6d mode.special-mode."Ztree"..."A.m
1b1c0 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 74 68 65 20 64 69 72 ajor.mode.for.displaying.the.dir
1b1e0 65 63 74 6f 72 79 20 74 72 65 65 20 69 6e 20 74 65 78 74 20 6d 6f 64 65 2e 22 0a 20 20 3b 3b 20 ectory.tree.in.text.mode."...;;.
1b200 6f 6e 6c 79 20 73 70 61 63 65 73 0a 20 20 28 73 65 74 71 20 69 6e 64 65 6e 74 2d 74 61 62 73 2d only.spaces...(setq.indent-tabs-
1b220 6d 6f 64 65 20 6e 69 6c 29 0a 20 20 28 73 65 74 71 09 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e mode.nil)...(setq.buffer-read-on
1b240 6c 79 20 74 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 73 63 72 6f 6c 6c 2d 74 6f 2d ly.t))...(defun.ztree-scroll-to-
1b260 6c 69 6e 65 20 28 6c 69 6e 65 29 0a 20 20 22 53 65 74 20 74 68 65 20 63 75 72 73 6f 72 20 74 6f line.(line)..."Set.the.cursor.to
1b280 20 73 70 65 63 69 66 69 65 64 20 4c 49 4e 45 20 61 6e 64 20 74 6f 20 74 68 65 20 74 65 78 74 20 .specified.LINE.and.to.the.text.
1b2a0 6f 66 66 73 65 74 20 28 69 66 20 70 6f 73 73 69 62 6c 65 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 offset.(if.possible)."...(let.((
1b2c0 63 65 6e 74 65 72 20 28 2f 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 32 29 29 0a 20 20 20 center.(/.(window-width).2))....
1b2e0 20 20 20 20 20 28 63 75 72 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 .....(cur-line.(line-number-at-p
1b300 6f 73 29 29 29 0a 20 20 20 20 3b 3b 20 62 61 73 65 64 20 6f 6e 20 64 69 72 65 64 2d 6e 65 78 74 os))).....;;.based.on.dired-next
1b320 2d 6c 69 6e 65 0a 20 20 20 20 3b 3b 20 73 65 74 20 6c 69 6e 65 2d 6d 6f 76 65 20 74 6f 20 6d 6f -line.....;;.set.line-move.to.mo
1b340 76 65 20 62 79 20 6c 6f 67 69 63 61 6c 20 6c 69 6e 65 73 0a 20 20 20 20 28 6c 65 74 20 28 28 6c ve.by.logical.lines.....(let.((l
1b360 69 6e 65 2d 6d 6f 76 65 2d 76 69 73 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 61 6c ine-move-visual)...........(goal
1b380 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 28 6c 69 6e 65 2d 6d 6f 76 65 20 28 2d 20 6c 69 -column)).......(line-move.(-.li
1b3a0 6e 65 20 63 75 72 2d 6c 69 6e 65 29 20 74 29 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 ne.cur-line).t).......(when-let.
1b3c0 28 6f 66 66 73 65 74 20 28 70 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (offset.(plist-get..............
1b3e0 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 68 61 73 68 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 ............(gethash.(line-numbe
1b400 72 2d 61 74 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r-at-pos).......................
1b420 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 2d 70 72 6f 70 ............ztree-line-tree-prop
1b440 65 72 74 69 65 73 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 erties).........................
1b460 20 27 6f 66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 7a 74 .'offset)).........(when.(and.zt
1b480 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ree-two-sided-p.................
1b4a0 20 20 20 28 3e 3d 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 20 63 65 6e 74 65 72 29 29 ...(>=.(current-column).center))
1b4c0 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 6f 66 66 73 65 74 20 28 31 2b 20 63 ...........(cl-incf.offset.(1+.c
1b4e0 65 6e 74 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c enter))).........(beginning-of-l
1b500 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 28 70 6f 69 6e ine).........(goto-char.(+.(poin
1b520 74 29 20 6f 66 66 73 65 74 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 66 t).offset))))))...(defun.ztree-f
1b540 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 28 6c 69 6e 65 29 0a 20 20 22 52 65 74 75 72 ind-node-in-line.(line)..."Retur
1b560 6e 20 74 68 65 20 6e 6f 64 65 20 66 6f 72 20 74 68 65 20 4c 49 4e 45 20 73 70 65 63 69 66 69 65 n.the.node.for.the.LINE.specifie
1b580 64 2e 0a 53 65 61 72 63 68 20 74 68 72 6f 75 67 68 20 74 68 65 20 61 72 72 61 79 20 6f 66 20 6e d..Search.through.the.array.of.n
1b5a0 6f 64 65 2d 6c 69 6e 65 20 70 61 69 72 73 2e 22 0a 20 20 28 67 65 74 68 61 73 68 20 6c 69 6e 65 ode-line.pairs."...(gethash.line
1b5c0 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 6f 2d 6e 6f 64 65 2d 74 61 62 6c 65 29 29 0a 0a 28 64 65 .ztree-line-to-node-table))..(de
1b5e0 66 75 6e 20 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a fun.ztree-find-node-at-point.().
1b600 20 20 22 46 69 6e 64 20 74 68 65 20 6e 6f 64 65 20 61 74 20 70 6f 69 6e 74 2e 0a 52 65 74 75 72 .."Find.the.node.at.point..Retur
1b620 6e 73 20 63 6f 6e 73 20 70 61 69 72 20 28 6e 6f 64 65 2c 20 73 69 64 65 29 20 66 6f 72 20 74 68 ns.cons.pair.(node,.side).for.th
1b640 65 20 63 75 72 72 65 6e 74 20 70 6f 69 6e 74 0a 6f 72 20 6e 69 6c 20 69 66 20 74 68 65 72 65 20 e.current.point.or.nil.if.there.
1b660 69 73 20 6e 6f 20 6e 6f 64 65 22 0a 20 20 28 6c 65 74 20 28 28 63 65 6e 74 65 72 20 28 2f 20 28 is.no.node"...(let.((center.(/.(
1b680 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 32 29 29 0a 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 window-width).2)).........(node.
1b6a0 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e (ztree-find-node-in-line.(line-n
1b6c0 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6e 6f 64 65 0a umber-at-pos)))).....(when.node.
1b6e0 20 20 20 20 20 20 28 63 6f 6e 73 20 6e 6f 64 65 20 28 69 66 20 28 3e 20 28 63 75 72 72 65 6e 74 ......(cons.node.(if.(>.(current
1b700 2d 63 6f 6c 75 6d 6e 29 20 63 65 6e 74 65 72 29 20 27 72 69 67 68 74 20 27 6c 65 66 74 29 29 29 -column).center).'right.'left)))
1b720 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 69 73 2d 65 78 70 61 6e 64 65 64 2d 6e 6f ))...(defun.ztree-is-expanded-no
1b740 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 46 69 6e 64 20 69 66 20 74 68 65 20 4e 4f 44 45 20 69 73 de.(node)..."Find.if.the.NODE.is
1b760 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 65 78 70 61 6e 64 65 64 20 6e 6f 64 65 73 2e 22 .in.the.list.of.expanded.nodes."
1b780 0a 20 20 28 7a 74 72 65 65 2d 66 69 6e 64 20 7a 74 72 65 65 2d 65 78 70 61 6e 64 65 64 2d 6e 6f ...(ztree-find.ztree-expanded-no
1b7a0 64 65 73 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 des-list...............#'(lambda
1b7c0 20 28 78 29 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 71 75 61 6c 20 78 20 6e 6f 64 65 29 29 29 .(x).(ztree-node-equal.x.node)))
1b7e0 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 73 65 74 2d 70 61 72 65 6e 74 2d 66 6f 72 2d )...(defun.ztree-set-parent-for-
1b800 6c 69 6e 65 20 28 6c 69 6e 65 20 70 61 72 65 6e 74 29 0a 20 20 22 46 6f 72 20 67 69 76 65 6e 20 line.(line.parent)..."For.given.
1b820 4c 49 4e 45 20 73 65 74 20 74 68 65 20 50 41 52 45 4e 54 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 LINE.set.the.PARENT.in.the.globa
1b840 6c 20 61 72 72 61 79 2e 22 0a 20 20 28 61 73 65 74 20 7a 74 72 65 65 2d 70 61 72 65 6e 74 2d 6c l.array."...(aset.ztree-parent-l
1b860 69 6e 65 73 2d 61 72 72 61 79 20 28 2d 20 6c 69 6e 65 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c ines-array.(-.line.ztree-start-l
1b880 69 6e 65 29 20 70 61 72 65 6e 74 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 67 65 74 ine).parent))...(defun.ztree-get
1b8a0 2d 70 61 72 65 6e 74 2d 66 6f 72 2d 6c 69 6e 65 20 28 6c 69 6e 65 29 0a 20 20 22 46 6f 72 20 67 -parent-for-line.(line)..."For.g
1b8c0 69 76 65 6e 20 4c 49 4e 45 20 72 65 74 75 72 6e 20 61 20 70 61 72 65 6e 74 2e 22 0a 20 20 28 77 iven.LINE.return.a.parent."...(w
1b8e0 68 65 6e 20 28 61 6e 64 20 28 3e 3d 20 6c 69 6e 65 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 hen.(and.(>=.line.ztree-start-li
1b900 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 6c 69 6e 65 20 28 2b 20 28 6c 65 6e ne)..............(<.line.(+.(len
1b920 67 74 68 20 7a 74 72 65 65 2d 70 61 72 65 6e 74 2d 6c 69 6e 65 73 2d 61 72 72 61 79 29 20 7a 74 gth.ztree-parent-lines-array).zt
1b940 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 29 29 0a 20 20 20 20 28 61 72 65 66 20 7a 74 72 65 ree-start-line))).....(aref.ztre
1b960 65 2d 70 61 72 65 6e 74 2d 6c 69 6e 65 73 2d 61 72 72 61 79 20 28 2d 20 6c 69 6e 65 20 7a 74 72 e-parent-lines-array.(-.line.ztr
1b980 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 ee-start-line))))...(defun.ztree
1b9a0 2d 64 6f 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 75 62 74 72 65 65 2d 69 74 65 72 20 28 -do-toggle-expand-subtree-iter.(
1b9c0 6e 6f 64 65 20 73 74 61 74 65 29 0a 20 20 22 49 74 65 72 61 74 69 6f 6e 20 69 6e 20 65 78 70 61 node.state)..."Iteration.in.expa
1b9e0 6e 64 69 6e 67 20 73 75 62 74 72 65 65 2e 0a 41 72 67 75 6d 65 6e 74 20 4e 4f 44 45 20 63 75 72 nding.subtree..Argument.NODE.cur
1ba00 72 65 6e 74 20 6e 6f 64 65 2e 0a 41 72 67 75 6d 65 6e 74 20 53 54 41 54 45 20 6e 6f 64 65 20 73 rent.node..Argument.STATE.node.s
1ba20 74 61 74 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 61 6e tate."...(when.(ztree-node-expan
1ba40 64 61 62 6c 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 63 68 69 6c 64 72 65 dable-p.node).....(let.((childre
1ba60 6e 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 0a 20 n.(ztree-node-children.node)))..
1ba80 20 20 20 20 20 28 7a 74 72 65 65 2d 64 6f 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 74 61 .....(ztree-do-toggle-expand-sta
1baa0 74 65 20 6e 6f 64 65 20 73 74 61 74 65 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 68 te.node.state).......(dolist.(ch
1bac0 69 6c 64 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 6f 2d ild.children).........(ztree-do-
1bae0 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 75 62 74 72 65 65 2d 69 74 65 72 20 63 68 69 6c 64 toggle-expand-subtree-iter.child
1bb00 20 73 74 61 74 65 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 6f 2d 74 6f .state)))))...(defun.ztree-do-to
1bb20 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 75 62 74 72 65 65 20 28 29 0a 20 20 22 49 6d 70 6c 65 6d ggle-expand-subtree.()..."Implem
1bb40 65 6e 74 73 20 74 68 65 20 73 75 62 74 72 65 65 20 65 78 70 61 6e 64 2e 22 0a 20 20 28 6c 65 74 ents.the.subtree.expand."...(let
1bb60 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 0a 20 *.((line.(line-number-at-pos))..
1bb80 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 69 ........(node.(ztree-find-node-i
1bba0 6e 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 73 61 76 65 20 74 n-line.line))..........;;.save.t
1bbc0 68 65 20 63 75 72 72 65 6e 74 20 77 69 6e 64 6f 77 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e he.current.window.start.position
1bbe0 0a 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 70 6f 73 20 28 77 69 6e 64 6f 77 2d 73 ..........(current-pos.(window-s
1bc00 74 61 72 74 29 29 29 0a 20 20 20 20 3b 3b 20 6f 6e 6c 79 20 66 6f 72 20 65 78 70 61 6e 64 61 62 tart))).....;;.only.for.expandab
1bc20 6c 65 20 6e 6f 64 65 73 0a 20 20 20 20 28 77 68 65 6e 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 le.nodes.....(when.(ztree-node-e
1bc40 78 70 61 6e 64 61 62 6c 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 3b 3b 20 67 65 74 20 74 xpandable-p.node).......;;.get.t
1bc60 68 65 20 63 75 72 72 65 6e 74 20 65 78 70 61 6e 64 20 73 74 61 74 65 20 61 6e 64 20 69 6e 76 65 he.current.expand.state.and.inve
1bc80 72 74 20 69 74 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 6f 2d 65 78 70 61 6e 64 20 28 6e 6f rt.it.......(let.((do-expand.(no
1bca0 74 20 28 7a 74 72 65 65 2d 69 73 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 20 6e 6f 64 65 29 29 t.(ztree-is-expanded-node.node))
1bcc0 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 6f 2d 74 6f 67 67 6c 65 2d 65 78 70 61 )).........(ztree-do-toggle-expa
1bce0 6e 64 2d 73 75 62 74 72 65 65 2d 69 74 65 72 20 6e 6f 64 65 20 64 6f 2d 65 78 70 61 6e 64 29 29 nd-subtree-iter.node.do-expand))
1bd00 0a 20 20 20 20 20 20 3b 3b 20 72 65 66 72 65 73 68 20 62 75 66 66 65 72 20 61 6e 64 20 73 63 72 .......;;.refresh.buffer.and.scr
1bd20 6f 6c 6c 20 62 61 63 6b 20 74 6f 20 74 68 65 20 73 61 76 65 64 20 6c 69 6e 65 0a 20 20 20 20 20 oll.back.to.the.saved.line......
1bd40 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 6c 69 6e 65 29 0a 20 20 20 .(ztree-refresh-buffer.line)....
1bd60 20 20 20 3b 3b 20 72 65 73 74 6f 72 65 20 77 69 6e 64 6f 77 20 73 74 61 72 74 20 70 6f 73 69 74 ...;;.restore.window.start.posit
1bd80 69 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 73 74 61 72 74 20 28 73 65 6c ion.......(set-window-start.(sel
1bda0 65 63 74 65 64 2d 77 69 6e 64 6f 77 29 20 63 75 72 72 65 6e 74 2d 70 6f 73 29 29 29 29 0a 0a 0a ected-window).current-pos))))...
1bdc0 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 6f 2d 70 65 72 66 6f 72 6d 2d 61 63 74 69 6f 6e 20 28 (defun.ztree-do-perform-action.(
1bde0 68 61 72 64 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 78 70 61 6e 64 2f 63 6f 6c 6c 61 70 73 65 64 hard)..."Toggle.expand/collapsed
1be00 20 73 74 61 74 65 20 66 6f 72 20 6e 6f 64 65 73 20 6f 72 20 70 65 72 66 6f 72 6d 20 61 6e 20 61 .state.for.nodes.or.perform.an.a
1be20 63 74 69 6f 6e 2e 0a 48 41 52 44 20 73 70 65 63 69 66 69 65 73 20 28 74 20 6f 72 20 6e 69 6c 29 ction..HARD.specifies.(t.or.nil)
1be40 20 69 66 20 74 68 65 20 68 61 72 64 20 61 63 74 69 6f 6e 2c 20 62 69 6e 64 65 64 20 6f 6e 20 52 .if.the.hard.action,.binded.on.R
1be60 45 54 2c 0a 73 68 6f 75 6c 64 20 62 65 20 70 65 72 66 6f 72 6d 65 64 20 6f 6e 20 6e 6f 64 65 2e ET,.should.be.performed.on.node.
1be80 22 0a 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 "...(let*.((line.(line-number-at
1bea0 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 66 69 6e -pos))..........(node.(ztree-fin
1bec0 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e d-node-in-line.line))).....(when
1bee0 20 6e 6f 64 65 0a 20 20 20 20 20 20 28 69 66 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 61 .node.......(if.(ztree-node-expa
1bf00 6e 64 61 62 6c 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 6e 6c 79 ndable-p.node)...........;;.only
1bf20 20 66 6f 72 20 65 78 70 61 6e 64 61 62 6c 65 20 6e 6f 64 65 73 0a 20 20 20 20 20 20 20 20 20 20 .for.expandable.nodes...........
1bf40 28 7a 74 72 65 65 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 74 61 74 65 20 6e 6f 64 65 29 (ztree-toggle-expand-state.node)
1bf60 0a 20 20 20 20 20 20 20 20 3b 3b 20 70 65 72 66 6f 72 6d 20 61 63 74 69 6f 6e 0a 20 20 20 20 20 .........;;.perform.action......
1bf80 20 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 61 63 74 69 6f 6e 20 6e 6f 64 65 20 68 61 72 64 29 ...(ztree-node-action.node.hard)
1bfa0 29 0a 20 20 20 20 20 20 3b 3b 20 73 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 69 6e 64 ).......;;.save.the.current.wind
1bfc0 6f 77 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 ow.start.position.......(let.((c
1bfe0 75 72 72 65 6e 74 2d 70 6f 73 20 28 77 69 6e 64 6f 77 2d 73 74 61 72 74 29 29 29 0a 20 20 20 20 urrent-pos.(window-start))).....
1c000 20 20 20 20 3b 3b 20 72 65 66 72 65 73 68 20 62 75 66 66 65 72 20 61 6e 64 20 73 63 72 6f 6c 6c ....;;.refresh.buffer.and.scroll
1c020 20 62 61 63 6b 20 74 6f 20 74 68 65 20 73 61 76 65 64 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 .back.to.the.saved.line.........
1c040 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 6c 69 6e 65 29 0a 20 20 20 20 (ztree-refresh-buffer.line).....
1c060 20 20 20 20 3b 3b 20 72 65 73 74 6f 72 65 20 77 69 6e 64 6f 77 20 73 74 61 72 74 20 70 6f 73 69 ....;;.restore.window.start.posi
1c080 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 73 74 61 72 74 20 28 tion.........(set-window-start.(
1c0a0 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 29 20 63 75 72 72 65 6e 74 2d 70 6f 73 29 29 29 29 selected-window).current-pos))))
1c0c0 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 70 65 72 66 6f 72 6d 2d 61 63 74 69 6f 6e 20 )...(defun.ztree-perform-action.
1c0e0 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 78 70 61 6e 64 2f 63 6f 6c 6c 61 70 73 65 64 20 73 74 ()..."Toggle.expand/collapsed.st
1c100 61 74 65 20 66 6f 72 20 6e 6f 64 65 73 20 6f 72 20 70 65 72 66 6f 72 6d 20 74 68 65 20 61 63 74 ate.for.nodes.or.perform.the.act
1c120 69 6f 6e 2e 0a 50 65 72 66 6f 72 6d 73 20 74 68 65 20 68 61 72 64 20 61 63 74 69 6f 6e 2c 20 62 ion..Performs.the.hard.action,.b
1c140 69 6e 64 65 64 20 6f 6e 20 52 45 54 2c 20 6f 6e 20 6e 6f 64 65 2e 22 0a 20 20 28 69 6e 74 65 72 inded.on.RET,.on.node."...(inter
1c160 61 63 74 69 76 65 29 0a 20 20 28 7a 74 72 65 65 2d 64 6f 2d 70 65 72 66 6f 72 6d 2d 61 63 74 69 active)...(ztree-do-perform-acti
1c180 6f 6e 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 70 65 72 66 6f 72 6d 2d 73 6f 66 on.t))..(defun.ztree-perform-sof
1c1a0 74 2d 61 63 74 69 6f 6e 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 78 70 61 6e 64 2f 63 6f 6c t-action.()..."Toggle.expand/col
1c1c0 6c 61 70 73 65 64 20 73 74 61 74 65 20 66 6f 72 20 6e 6f 64 65 73 20 6f 72 20 70 65 72 66 6f 72 lapsed.state.for.nodes.or.perfor
1c1e0 6d 20 74 68 65 20 61 63 74 69 6f 6e 2e 0a 50 65 72 66 6f 72 6d 73 20 74 68 65 20 73 6f 66 74 20 m.the.action..Performs.the.soft.
1c200 61 63 74 69 6f 6e 2c 20 62 69 6e 64 65 64 20 6f 6e 20 53 70 61 63 65 2c 20 6f 6e 20 6e 6f 64 65 action,.binded.on.Space,.on.node
1c220 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 7a 74 72 65 65 2d 64 6f 2d 70 ."...(interactive)...(ztree-do-p
1c240 65 72 66 6f 72 6d 2d 61 63 74 69 6f 6e 20 6e 69 6c 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 erform-action.nil))...(defun.ztr
1c260 65 65 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 75 62 74 72 65 65 28 29 0a 20 20 22 54 6f ee-toggle-expand-subtree()..."To
1c280 67 67 6c 65 20 45 78 70 61 6e 64 65 64 2f 43 6f 6c 6c 61 70 73 65 64 20 73 74 61 74 65 20 6f 6e ggle.Expanded/Collapsed.state.on
1c2a0 20 61 6c 6c 20 6e 6f 64 65 73 20 6f 66 20 74 68 65 20 73 75 62 74 72 65 65 22 0a 20 20 28 69 6e .all.nodes.of.the.subtree"...(in
1c2c0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 7a 74 72 65 65 2d 64 6f 2d 74 6f 67 67 6c 65 2d 65 78 teractive)...(ztree-do-toggle-ex
1c2e0 70 61 6e 64 2d 73 75 62 74 72 65 65 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 6f 2d pand-subtree))..(defun.ztree-do-
1c300 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 74 61 74 65 20 28 6e 6f 64 65 20 64 6f 2d 65 78 70 toggle-expand-state.(node.do-exp
1c320 61 6e 64 29 0a 20 20 22 53 65 74 20 74 68 65 20 65 78 70 61 6e 64 65 64 20 73 74 61 74 65 20 6f and)..."Set.the.expanded.state.o
1c340 66 20 74 68 65 20 4e 4f 44 45 20 74 6f 20 44 4f 2d 45 58 50 41 4e 44 2e 22 0a 20 20 28 69 66 20 f.the.NODE.to.DO-EXPAND."...(if.
1c360 28 6e 6f 74 20 64 6f 2d 65 78 70 61 6e 64 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 (not.do-expand).......(setq.ztre
1c380 65 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 73 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 e-expanded-nodes-list...........
1c3a0 20 20 28 7a 74 72 65 65 2d 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 ..(ztree-filter..............#'(
1c3c0 6c 61 6d 62 64 61 20 28 78 29 20 28 6e 6f 74 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 71 75 61 lambda.(x).(not.(ztree-node-equa
1c3e0 6c 20 6e 6f 64 65 20 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 65 l.node.x)))..............ztree-e
1c400 78 70 61 6e 64 65 64 2d 6e 6f 64 65 73 2d 6c 69 73 74 29 29 0a 20 20 20 20 28 70 75 73 68 20 6e xpanded-nodes-list)).....(push.n
1c420 6f 64 65 20 7a 74 72 65 65 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 73 2d 6c 69 73 74 29 29 29 ode.ztree-expanded-nodes-list)))
1c440 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 74 ...(defun.ztree-toggle-expand-st
1c460 61 74 65 20 28 6e 6f 64 65 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 78 70 61 6e 64 65 64 2f 63 6f ate.(node)..."Toggle.expanded/co
1c480 6c 6c 61 70 73 65 64 20 73 74 61 74 65 20 66 6f 72 20 4e 4f 44 45 2e 22 0a 20 20 28 7a 74 72 65 llapsed.state.for.NODE."...(ztre
1c4a0 65 2d 64 6f 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e 64 2d 73 74 61 74 65 20 6e 6f 64 65 20 28 6e e-do-toggle-expand-state.node.(n
1c4c0 6f 74 20 28 7a 74 72 65 65 2d 69 73 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 20 6e 6f 64 65 29 ot.(ztree-is-expanded-node.node)
1c4e0 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 6d 6f 76 65 2d 75 70 2d 69 6e 2d 74 72 )))...(defun.ztree-move-up-in-tr
1c500 65 65 20 28 29 0a 20 20 22 41 63 74 69 6f 6e 20 6f 6e 20 42 61 63 6b 73 70 61 63 65 20 6b 65 79 ee.()..."Action.on.Backspace.key
1c520 2e 0a 4a 75 6d 70 20 74 6f 20 74 68 65 20 6c 69 6e 65 20 6f 66 20 61 20 70 61 72 65 6e 74 20 6e ..Jump.to.the.line.of.a.parent.n
1c540 6f 64 65 2e 20 20 49 66 20 70 72 65 76 69 6f 75 73 20 6b 65 79 20 77 61 73 20 42 61 63 6b 73 70 ode...If.previous.key.was.Backsp
1c560 61 63 65 0a 74 68 65 6e 20 63 6c 6f 73 65 20 74 68 65 20 6e 6f 64 65 2e 22 0a 20 20 28 69 6e 74 ace.then.close.the.node."...(int
1c580 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 7a 74 72 65 65 2d 70 61 72 65 6e 74 2d 6c eractive)...(when.ztree-parent-l
1c5a0 69 6e 65 73 2d 61 72 72 61 79 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e ines-array.....(let*.((line.(lin
1c5c0 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 e-number-at-pos.(point))).......
1c5e0 20 20 20 20 20 28 70 61 72 65 6e 74 20 28 7a 74 72 65 65 2d 67 65 74 2d 70 61 72 65 6e 74 2d 66 .....(parent.(ztree-get-parent-f
1c600 6f 72 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 70 61 72 65 or-line.line))).......(when.pare
1c620 6e 74 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 65 71 75 61 6c 20 6c 61 73 74 2d nt.........(if.(and.(equal.last-
1c640 63 6f 6d 6d 61 6e 64 20 27 7a 74 72 65 65 2d 6d 6f 76 65 2d 75 70 2d 69 6e 2d 74 72 65 65 29 0a command.'ztree-move-up-in-tree).
1c660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 7a 74 72 65 65 2d 63 6f 75 6e .................(not.ztree-coun
1c680 74 2d 73 75 62 73 65 71 75 65 6e 74 2d 62 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c t-subsequent-bs)).............(l
1c6a0 65 74 20 28 28 6e 6f 64 65 20 28 7a 74 72 65 65 2d 66 69 6e 64 2d 6e 6f 64 65 2d 69 6e 2d 6c 69 et.((node.(ztree-find-node-in-li
1c6c0 6e 65 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 ne.line)))...............(when.(
1c6e0 7a 74 72 65 65 2d 69 73 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 20 6e 6f 64 65 29 0a 20 20 20 ztree-is-expanded-node.node)....
1c700 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 74 6f 67 67 6c 65 2d 65 78 70 61 6e .............(ztree-toggle-expan
1c720 64 2d 73 74 61 74 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 d-state.node))...............(se
1c740 74 71 20 7a 74 72 65 65 2d 63 6f 75 6e 74 2d 73 75 62 73 65 71 75 65 6e 74 2d 62 73 20 74 29 0a tq.ztree-count-subsequent-bs.t).
1c760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 ..............(ztree-refresh-buf
1c780 66 65 72 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 73 65 74 fer.line))...........(progn.(set
1c7a0 71 20 7a 74 72 65 65 2d 63 6f 75 6e 74 2d 73 75 62 73 65 71 75 65 6e 74 2d 62 73 20 6e 69 6c 29 q.ztree-count-subsequent-bs.nil)
1c7c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 63 72 6f 6c 6c 2d ..................(ztree-scroll-
1c7e0 74 6f 2d 6c 69 6e 65 20 70 61 72 65 6e 74 29 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a to-line.parent)))))))...(defun.z
1c800 74 72 65 65 2d 67 65 74 2d 73 70 6c 69 74 74 65 64 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 73 20 28 tree-get-splitted-node-contens.(
1c820 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 70 61 69 72 20 6f 66 20 32 20 65 6c 65 6d 65 6e node)..."Return.pair.of.2.elemen
1c840 74 73 3a 20 6c 69 73 74 20 6f 66 20 65 78 70 61 6e 64 61 62 6c 65 20 6e 6f 64 65 73 20 61 6e 64 ts:.list.of.expandable.nodes.and
1c860 20 6c 69 73 74 20 6f 66 20 6c 65 61 66 73 2e 0a 41 72 67 75 6d 65 6e 74 20 4e 4f 44 45 20 6e 6f .list.of.leafs..Argument.NODE.no
1c880 64 65 20 77 68 69 63 68 20 63 6f 6e 74 65 6e 74 73 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e de.which.contents.will.be.return
1c8a0 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 73 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d ed."...(let.((nodes.(ztree-node-
1c8c0 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 70 20 20 23 children.node)).........(comp..#
1c8e0 27 28 6c 61 6d 62 64 61 20 28 78 20 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 '(lambda.(x.y)..................
1c900 20 20 28 73 74 72 69 6e 67 3c 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d ..(string<.(ztree-node-short-nam
1c920 65 20 78 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 e.x)............................
1c940 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 79 29 29 29 29 29 0a 20 .(ztree-node-short-name.y)))))..
1c960 20 20 20 28 63 6f 6e 73 20 28 73 6f 72 74 20 28 7a 74 72 65 65 2d 66 69 6c 74 65 72 0a 20 20 20 ...(cons.(sort.(ztree-filter....
1c980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 66 29 20 28 7a 74 72 ..............#'(lambda.(f).(ztr
1c9a0 65 65 2d 6e 6f 64 65 2d 65 78 70 61 6e 64 61 62 6c 65 2d 70 20 66 29 29 0a 20 20 20 20 20 20 20 ee-node-expandable-p.f))........
1c9c0 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........nodes)................
1c9e0 20 63 6f 6d 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 6f 72 74 20 28 7a 74 72 65 65 2d 66 69 .comp)...........(sort.(ztree-fi
1ca00 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 lter..................#'(lambda.
1ca20 28 66 29 20 28 6e 6f 74 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 61 6e 64 61 62 6c 65 2d (f).(not.(ztree-node-expandable-
1ca40 70 20 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 73 29 0a 20 p.f)))..................nodes)..
1ca60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e ...............comp))))...(defun
1ca80 20 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 28 63 20 78 20 79 20 26 6f 70 74 69 6f 6e 61 .ztree-draw-char.(c.x.y.&optiona
1caa0 6c 20 66 61 63 65 29 0a 20 20 22 44 72 61 77 20 63 68 61 72 20 43 20 61 74 20 74 68 65 20 70 6f l.face)..."Draw.char.C.at.the.po
1cac0 73 69 74 69 6f 6e 20 28 31 2d 62 61 73 65 64 29 20 28 58 20 59 29 2e 0a 4f 70 74 69 6f 6e 61 6c sition.(1-based).(X.Y)..Optional
1cae0 20 61 72 67 75 6d 65 6e 74 20 46 41 43 45 20 66 61 63 65 20 74 6f 20 75 73 65 20 74 6f 20 64 72 .argument.FACE.face.to.use.to.dr
1cb00 61 77 20 61 20 63 68 61 72 61 63 74 65 72 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 aw.a.character."...(save-excursi
1cb20 6f 6e 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 0a 20 on.....(goto-char.(point-min))..
1cb40 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 79 29 29 0a 20 20 20 20 28 62 65 ...(forward-line.(1-.y)).....(be
1cb60 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 ginning-of-line).....(goto-char.
1cb80 28 2b 20 78 20 28 2d 28 70 6f 69 6e 74 29 20 31 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d (+.x.(-(point).1))).....(delete-
1cba0 63 68 61 72 20 31 29 0a 20 20 20 20 28 69 6e 73 65 72 74 2d 63 68 61 72 20 63 20 31 29 0a 20 20 char.1).....(insert-char.c.1)...
1cbc0 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 31 2d 20 28 70 6f 69 6e 74 29 ..(put-text-property.(1-.(point)
1cbe0 29 20 28 70 6f 69 6e 74 29 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 28 69 66 20 66 61 ).(point).'font-lock-face.(if.fa
1cc00 63 65 20 66 61 63 65 20 27 7a 74 72 65 65 70 2d 61 72 72 6f 77 2d 66 61 63 65 29 29 29 29 0a 0a ce.face.'ztreep-arrow-face))))..
1cc20 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 2d 63 68 61 72 20 (defun.ztree-vertical-line-char.
1cc40 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 75 73 65 64 20 ()..."Return.the.character.used.
1cc60 74 6f 20 64 72 61 77 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 2e 22 0a 20 20 28 69 66 20 7a 74 to.draw.vertical.line."...(if.zt
1cc80 72 65 65 2d 64 72 61 77 2d 75 6e 69 63 6f 64 65 2d 6c 69 6e 65 73 20 23 78 32 35 30 32 20 3f 5c ree-draw-unicode-lines.#x2502.?\
1cca0 7c 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 6c 69 6e |))..(defun.ztree-horizontal-lin
1ccc0 65 2d 63 68 61 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 68 61 72 61 63 74 65 e-char.()..."Return.the.characte
1cce0 72 20 75 73 65 64 20 74 6f 20 64 72 61 77 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 2e 22 0a 20 r.used.to.draw.vertical.line."..
1cd00 20 28 69 66 20 7a 74 72 65 65 2d 64 72 61 77 2d 75 6e 69 63 6f 64 65 2d 6c 69 6e 65 73 20 23 78 .(if.ztree-draw-unicode-lines.#x
1cd20 32 35 30 30 20 3f 5c 2d 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 6c 65 66 74 2d 62 6f 2500.?\-))..(defun.ztree-left-bo
1cd40 74 74 6f 6d 2d 63 6f 72 6e 65 72 2d 63 68 61 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 ttom-corner-char.()..."Return.th
1cd60 65 20 63 68 61 72 61 63 74 65 72 20 75 73 65 64 20 74 6f 20 64 72 61 77 20 76 65 72 74 69 63 61 e.character.used.to.draw.vertica
1cd80 6c 20 6c 69 6e 65 2e 22 0a 20 20 28 69 66 20 7a 74 72 65 65 2d 64 72 61 77 2d 75 6e 69 63 6f 64 l.line."...(if.ztree-draw-unicod
1cda0 65 2d 6c 69 6e 65 73 20 23 78 32 35 31 34 20 3f 5c 60 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 e-lines.#x2514.?\`))..(defun.ztr
1cdc0 65 65 2d 6c 65 66 74 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 2d 63 68 61 72 20 28 29 0a 20 20 22 ee-left-intersection-char.()..."
1cde0 52 65 74 75 72 6e 20 6c 65 66 74 20 69 6e 74 65 72 73 65 63 74 69 6f 6e 20 63 68 61 72 61 63 74 Return.left.intersection.charact
1ce00 65 72 2e 0a 49 74 20 69 73 20 6a 75 73 74 20 76 65 72 74 69 63 61 6c 20 62 61 72 20 77 68 65 6e er..It.is.just.vertical.bar.when
1ce20 20 75 6e 69 63 6f 64 65 20 64 69 73 61 62 6c 65 64 22 0a 20 20 28 69 66 20 7a 74 72 65 65 2d 64 .unicode.disabled"...(if.ztree-d
1ce40 72 61 77 2d 75 6e 69 63 6f 64 65 2d 6c 69 6e 65 73 20 23 78 32 35 31 43 20 3f 5c 7c 29 29 0a 0a raw-unicode-lines.#x251C.?\|))..
1ce60 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 72 61 77 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 20 (defun.ztree-draw-vertical-line.
1ce80 28 79 31 20 79 32 20 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 61 63 65 29 0a 20 20 22 44 72 61 77 (y1.y2.x.&optional.face)..."Draw
1cea0 20 61 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 20 6f 66 20 60 7c 27 20 63 68 61 72 61 63 74 65 .a.vertical.line.of.`|'.characte
1cec0 72 73 20 66 72 6f 6d 20 59 31 20 72 6f 77 20 74 6f 20 59 32 20 69 6e 20 58 20 63 6f 6c 75 6d 6e rs.from.Y1.row.to.Y2.in.X.column
1cee0 2e 0a 4f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 46 41 43 45 20 66 61 63 65 20 74 6f ..Optional.argument.FACE.face.to
1cf00 20 64 72 61 77 20 6c 69 6e 65 20 77 69 74 68 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 65 72 2d 6c .draw.line.with."...(let.((ver-l
1cf20 69 6e 65 2d 63 68 61 72 20 28 7a 74 72 65 65 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 2d 63 68 ine-char.(ztree-vertical-line-ch
1cf40 61 72 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 75 6e 74 20 28 61 62 73 20 28 2d 20 79 31 20 79 ar)).........(count.(abs.(-.y1.y
1cf60 32 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 79 31 20 79 32 29 0a 20 20 20 20 20 20 20 20 2)))).....(if.(>.y1.y2).........
1cf80 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 79 20 63 6f 75 (progn...........(dotimes.(y.cou
1cfa0 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 nt).............(ztree-draw-char
1cfc0 20 76 65 72 2d 6c 69 6e 65 2d 63 68 61 72 20 78 20 28 2b 20 79 32 20 79 29 20 66 61 63 65 29 29 .ver-line-char.x.(+.y2.y).face))
1cfe0 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 76 65 72 2d ...........(ztree-draw-char.ver-
1d000 6c 69 6e 65 2d 63 68 61 72 20 78 20 28 2b 20 79 32 20 63 6f 75 6e 74 29 20 66 61 63 65 29 29 0a line-char.x.(+.y2.count).face)).
1d020 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 79 ......(progn.........(dotimes.(y
1d040 20 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 .count)...........(ztree-draw-ch
1d060 61 72 20 76 65 72 2d 6c 69 6e 65 2d 63 68 61 72 20 78 20 28 2b 20 79 31 20 79 29 20 66 61 63 65 ar.ver-line-char.x.(+.y1.y).face
1d080 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 76 65 72 2d )).........(ztree-draw-char.ver-
1d0a0 6c 69 6e 65 2d 63 68 61 72 20 78 20 28 2b 20 79 31 20 63 6f 75 6e 74 29 20 66 61 63 65 29 29 29 line-char.x.(+.y1.count).face)))
1d0c0 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 72 61 77 2d 76 65 72 74 69 63 61 6c 2d 72 ))..(defun.ztree-draw-vertical-r
1d0e0 6f 75 6e 64 65 64 2d 6c 69 6e 65 20 28 79 31 20 79 32 20 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 ounded-line.(y1.y2.x.&optional.f
1d100 61 63 65 29 0a 20 20 22 44 72 61 77 20 61 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 20 6f 66 20 ace)..."Draw.a.vertical.line.of.
1d120 60 7c 27 20 63 68 61 72 61 63 74 65 72 73 20 66 69 6e 69 73 68 69 6e 67 20 77 69 74 68 20 60 5c `|'.characters.finishing.with.`\
1d140 5c 3d 60 27 20 63 68 61 72 61 63 74 65 72 2e 0a 44 72 61 77 73 20 74 68 65 20 6c 69 6e 65 20 66 \=`'.character..Draws.the.line.f
1d160 72 6f 6d 20 59 31 20 72 6f 77 20 74 6f 20 59 32 20 69 6e 20 58 20 63 6f 6c 75 6d 6e 2e 0a 4f 70 rom.Y1.row.to.Y2.in.X.column..Op
1d180 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 46 41 43 45 20 66 61 63 65 74 20 74 6f 20 64 72 tional.argument.FACE.facet.to.dr
1d1a0 61 77 20 74 68 65 20 6c 69 6e 65 20 77 69 74 68 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 65 72 2d aw.the.line.with."...(let.((ver-
1d1c0 6c 69 6e 65 2d 63 68 61 72 20 28 7a 74 72 65 65 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 2d 63 line-char.(ztree-vertical-line-c
1d1e0 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 72 6e 65 72 2d 63 68 61 72 20 28 7a 74 72 65 har)).........(corner-char.(ztre
1d200 65 2d 6c 65 66 74 2d 62 6f 74 74 6f 6d 2d 63 6f 72 6e 65 72 2d 63 68 61 72 29 29 0a 20 20 20 20 e-left-bottom-corner-char)).....
1d220 20 20 20 20 28 63 6f 75 6e 74 20 28 61 62 73 20 28 2d 20 79 31 20 79 32 29 29 29 29 0a 20 20 20 ....(count.(abs.(-.y1.y2))))....
1d240 20 28 69 66 20 28 3e 20 79 31 20 79 32 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 .(if.(>.y1.y2).........(progn...
1d260 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 79 20 63 6f 75 6e 74 29 0a 20 20 20 20 20 ........(dotimes.(y.count)......
1d280 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 76 65 72 2d 6c 69 6e 65 .......(ztree-draw-char.ver-line
1d2a0 2d 63 68 61 72 20 78 20 28 2b 20 79 32 20 79 29 20 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 -char.x.(+.y2.y).face)).........
1d2c0 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 63 6f 72 6e 65 72 2d 63 68 61 72 20 78 ..(ztree-draw-char.corner-char.x
1d2e0 20 28 2b 20 79 32 20 63 6f 75 6e 74 29 20 66 61 63 65 29 29 0a 20 20 20 20 20 20 28 70 72 6f 67 .(+.y2.count).face)).......(prog
1d300 6e 0a 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 79 20 63 6f 75 6e 74 29 0a 20 20 20 n.........(dotimes.(y.count)....
1d320 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 76 65 72 2d 6c 69 6e 65 .......(ztree-draw-char.ver-line
1d340 2d 63 68 61 72 20 78 20 28 2b 20 79 31 20 79 29 20 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 -char.x.(+.y1.y).face)).........
1d360 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 63 6f 72 6e 65 72 2d 63 68 61 72 20 78 20 28 (ztree-draw-char.corner-char.x.(
1d380 2b 20 79 31 20 63 6f 75 6e 74 29 20 66 61 63 65 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a +.y1.count).face)))))...(defun.z
1d3a0 74 72 65 65 2d 64 72 61 77 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 6c 69 6e 65 20 28 78 31 20 78 32 tree-draw-horizontal-line.(x1.x2
1d3c0 20 79 29 0a 20 20 22 44 72 61 77 20 74 68 65 20 68 6f 72 69 7a 6f 6e 74 61 6c 20 6c 69 6e 65 20 .y)..."Draw.the.horizontal.line.
1d3e0 66 72 6f 6d 20 63 6f 6c 75 6d 6e 20 58 31 20 74 6f 20 58 32 20 69 6e 20 74 68 65 20 72 6f 77 20 from.column.X1.to.X2.in.the.row.
1d400 59 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 6f 72 2d 6c 69 6e 65 2d 63 68 61 72 20 28 7a 74 72 65 Y."...(let.((hor-line-char.(ztre
1d420 65 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 6c 69 6e 65 2d 63 68 61 72 29 29 29 0a 20 20 20 20 28 69 e-horizontal-line-char))).....(i
1d440 66 20 28 3e 20 78 31 20 78 32 29 0a 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 78 20 f.(>.x1.x2).........(dotimes.(x.
1d460 28 31 2b 20 28 2d 20 78 31 20 78 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 (1+.(-.x1.x2)))...........(ztree
1d480 2d 64 72 61 77 2d 63 68 61 72 20 68 6f 72 2d 6c 69 6e 65 2d 63 68 61 72 20 28 2b 20 78 32 20 78 -draw-char.hor-line-char.(+.x2.x
1d4a0 29 20 79 29 29 0a 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 78 20 28 31 2b 20 28 2d 20 78 ).y)).......(dotimes.(x.(1+.(-.x
1d4c0 32 20 78 31 29 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 2.x1))).........(ztree-draw-char
1d4e0 20 68 6f 72 2d 6c 69 6e 65 2d 63 68 61 72 20 28 2b 20 78 31 20 78 29 20 79 29 29 29 29 29 0a 0a .hor-line-char.(+.x1.x).y)))))..
1d500 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 64 72 61 77 2d 74 72 65 65 20 28 74 72 65 65 20 64 65 .(defun.ztree-draw-tree.(tree.de
1d520 70 74 68 20 73 74 61 72 74 2d 6f 66 66 73 65 74 29 0a 20 20 22 44 72 61 77 20 74 68 65 20 54 52 pth.start-offset)..."Draw.the.TR
1d540 45 45 20 6f 66 20 6c 69 6e 65 73 20 77 69 74 68 20 70 61 72 65 6e 74 73 2e 0a 41 72 67 75 6d 65 EE.of.lines.with.parents..Argume
1d560 6e 74 20 44 45 50 54 48 20 63 75 72 72 65 6e 74 20 64 65 70 74 68 2e 0a 41 72 67 75 6d 65 6e 74 nt.DEPTH.current.depth..Argument
1d580 20 53 54 41 52 54 2d 4f 46 46 53 45 54 20 63 6f 6c 75 6d 6e 20 74 6f 20 73 74 61 72 74 20 64 72 .START-OFFSET.column.to.start.dr
1d5a0 61 77 69 6e 67 20 66 72 6f 6d 2e 22 0a 20 20 28 69 66 20 28 61 74 6f 6d 20 74 72 65 65 29 0a 20 awing.from."...(if.(atom.tree)..
1d5c0 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 72 6f 6f 74 20 28 63 61 72 20 74 .....nil.....(let*.((root.(car.t
1d5e0 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 63 64 72 20 ree))............(children.(cdr.
1d600 74 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 66 66 73 65 74 20 28 2b 20 73 74 61 tree))............(offset.(+.sta
1d620 72 74 2d 6f 66 66 73 65 74 20 28 2a 20 64 65 70 74 68 20 34 29 29 29 0a 20 20 20 20 20 20 20 20 rt-offset.(*.depth.4))).........
1d640 20 20 20 28 6c 69 6e 65 2d 73 74 61 72 74 20 28 2b 20 33 20 6f 66 66 73 65 74 29 29 0a 20 20 20 ...(line-start.(+.3.offset))....
1d660 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 6c 65 61 66 20 28 2b 20 37 20 6f 66 66 73 ........(line-end-leaf.(+.7.offs
1d680 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 6e 6f 64 65 20 28 et))............(line-end-node.(
1d6a0 2b 20 34 20 6f 66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 72 6e 65 72 2d +.4.offset))............(corner-
1d6c0 63 68 61 72 20 28 7a 74 72 65 65 2d 6c 65 66 74 2d 62 6f 74 74 6f 6d 2d 63 6f 72 6e 65 72 2d 63 char.(ztree-left-bottom-corner-c
1d6e0 68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 73 65 63 74 69 6f 6e 2d 63 har))............(intersection-c
1d700 68 61 72 20 28 7a 74 72 65 65 2d 6c 65 66 74 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 2d 63 68 61 har.(ztree-left-intersection-cha
1d720 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 74 r))............;;.determine.if.t
1d740 68 65 20 6c 69 6e 65 20 69 73 20 76 69 73 69 62 6c 65 2e 20 49 74 20 69 73 20 61 6c 77 61 79 73 he.line.is.visible..It.is.always
1d760 20 74 68 65 20 63 61 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 31 2d 73 69 .the.case............;;.for.1-si
1d780 64 65 64 20 74 72 65 65 73 3b 20 68 6f 77 65 76 65 72 20 66 6f 72 20 32 20 73 69 64 65 64 20 74 ded.trees;.however.for.2.sided.t
1d7a0 72 65 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 74 20 64 65 70 65 6e 64 73 20 6f 6e rees............;;.it.depends.on
1d7c0 20 77 68 69 63 68 20 73 69 64 65 20 69 73 20 74 68 65 20 61 63 74 75 61 6c 20 65 6c 65 6d 65 6e .which.side.is.the.actual.elemen
1d7e0 74 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 77 68 69 63 68 20 74 72 65 65 20 28 t............;;.and.which.tree.(
1d800 6c 65 66 74 20 77 69 74 68 20 6f 66 66 73 65 74 20 30 20 6f 72 20 72 69 67 68 74 20 77 69 74 68 left.with.offset.0.or.right.with
1d820 20 6f 66 66 73 65 74 20 3e 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 65 20 61 72 65 .offset.>.0............;;.we.are
1d840 20 64 72 61 77 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 28 76 69 73 69 62 6c 65 20 23 27 28 .drawing............(visible.#'(
1d860 6c 61 6d 62 64 61 20 28 6c 69 6e 65 29 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lambda.(line).()................
1d880 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 .........(if.(not.ztree-two-side
1d8a0 64 2d 70 29 20 74 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 d-p).t..........................
1d8c0 20 28 6c 65 74 20 28 28 73 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(let.((side....................
1d8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 65 74 68 61 73 ..............(plist-get.(gethas
1d900 68 20 6c 69 6e 65 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 2d 70 72 6f 70 65 72 74 69 65 h.line.ztree-line-tree-propertie
1d920 73 29 20 27 73 69 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s).'side))).....................
1d940 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 73 69 64 65 20 27 6c 65 66 74 29 20 28 ........(cond.((eq.side.'left).(
1d960 3d 20 73 74 61 72 74 2d 6f 66 66 73 65 74 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 =.start-offset.0))..............
1d980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 73 69 64 65 20 27 .....................((eq.side.'
1d9a0 72 69 67 68 74 29 20 28 3e 20 73 74 61 72 74 2d 6f 66 66 73 65 74 20 30 29 29 0a 20 20 20 20 20 right).(>.start-offset.0))......
1d9c0 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 74 20 .............................(t.
1d9e0 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 63 68 69 6c 64 72 65 6e 0a 20 20 t))))))).......(when.children...
1da00 20 20 20 20 20 20 3b 3b 20 64 72 61 77 20 74 68 65 20 6c 69 6e 65 20 74 6f 20 74 68 65 20 6c 61 ......;;.draw.the.line.to.the.la
1da20 73 74 20 63 68 69 6c 64 0a 20 20 20 20 20 20 20 20 3b 3b 20 73 69 6e 63 65 20 77 65 20 70 75 73 st.child.........;;.since.we.pus
1da40 68 27 64 20 63 68 69 6c 64 72 65 6e 20 74 6f 20 74 68 65 20 6c 69 73 74 2c 20 69 74 27 73 20 74 h'd.children.to.the.list,.it's.t
1da60 68 65 20 66 69 72 73 74 20 76 69 73 69 62 6c 65 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 3b 3b he.first.visible.line.........;;
1da80 20 66 72 6f 6d 20 74 68 65 20 63 68 69 6c 64 72 65 6e 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 .from.the.children.list.........
1daa0 28 6c 65 74 20 28 28 6c 61 73 74 2d 63 68 69 6c 64 20 28 7a 74 72 65 65 2d 66 69 6e 64 20 63 68 (let.((last-child.(ztree-find.ch
1dac0 69 6c 64 72 65 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 ildren..........................
1dae0 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 78 29 0a 20 20 20 20 20 .............#'(lambda.(x)......
1db00 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 ................................
1db20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 76 69 73 69 62 6c 65 20 28 7a 74 72 65 65 2d 63 61 72 .....(funcall.visible.(ztree-car
1db40 2d 61 74 6f 6d 20 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 78 2d 6f 66 -atom.x)))))...............(x-of
1db60 66 73 65 74 20 28 2b 20 32 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 fset.(+.2.offset)))...........(w
1db80 68 65 6e 20 6c 61 73 74 2d 63 68 69 6c 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 hen.last-child.............(ztre
1dba0 65 2d 64 72 61 77 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 20 28 31 2b 20 72 6f 6f 74 29 0a 20 e-draw-vertical-line.(1+.root)..
1dbc0 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 ................................
1dbe0 20 20 20 20 20 28 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 6c 61 73 74 2d 63 68 69 6c 64 29 .....(ztree-car-atom.last-child)
1dc00 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 ................................
1dc20 20 20 20 20 20 20 20 78 2d 6f 66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 .......x-offset))...........;;.d
1dc40 72 61 77 20 72 65 63 75 72 73 69 76 65 6c 79 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 raw.recursively...........(dolis
1dc60 74 20 28 63 68 69 6c 64 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 t.(child.children).............(
1dc80 7a 74 72 65 65 2d 64 72 61 77 2d 74 72 65 65 20 63 68 69 6c 64 20 28 31 2b 20 64 65 70 74 68 29 ztree-draw-tree.child.(1+.depth)
1dca0 20 73 74 61 72 74 2d 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 .start-offset).............(let.
1dcc0 28 28 65 6e 64 20 28 69 66 20 28 6c 69 73 74 70 20 63 68 69 6c 64 29 20 6c 69 6e 65 2d 65 6e 64 ((end.(if.(listp.child).line-end
1dce0 2d 6e 6f 64 65 20 6c 69 6e 65 2d 65 6e 64 2d 6c 65 61 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 -node.line-end-leaf))...........
1dd00 20 20 20 20 20 20 20 20 28 72 6f 77 20 28 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 63 68 69 ........(row.(ztree-car-atom.chi
1dd20 6c 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 61 ld)))...............(when.(funca
1dd40 6c 6c 20 76 69 73 69 62 6c 65 20 28 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 63 68 69 6c 64 ll.visible.(ztree-car-atom.child
1dd60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 )).................(ztree-draw-c
1dd80 68 61 72 20 69 6e 74 65 72 73 65 63 74 69 6f 6e 2d 63 68 61 72 20 28 31 2d 20 6c 69 6e 65 2d 73 har.intersection-char.(1-.line-s
1dda0 74 61 72 74 29 20 72 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 tart).row).................(ztre
1ddc0 65 2d 64 72 61 77 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 6c 69 6e 65 20 6c 69 6e 65 2d 73 74 61 72 e-draw-horizontal-line.line-star
1dde0 74 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 t...............................
1de00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............end...............
1de20 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 72 6f ..............................ro
1de40 77 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 6e 61 6c 6c 79 20 64 72 61 77 20 w))))...........;;.finally.draw.
1de60 74 68 65 20 63 6f 72 6e 65 72 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 76 65 72 74 69 63 61 the.corner.at.the.end.of.vertica
1de80 6c 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6c 61 73 74 2d 63 68 69 6c l.line...........(when.last-chil
1dea0 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 63 68 61 72 20 63 d.............(ztree-draw-char.c
1dec0 6f 72 6e 65 72 2d 63 68 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 orner-char......................
1dee0 20 20 20 20 20 20 20 20 78 2d 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........x-offset................
1df00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 6c 61 ..............(ztree-car-atom.la
1df20 73 74 2d 63 68 69 6c 64 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 66 st-child))))))))..(defun.ztree-f
1df40 69 6c 6c 2d 70 61 72 65 6e 74 2d 61 72 72 61 79 20 28 74 72 65 65 29 0a 20 20 22 53 65 74 20 74 ill-parent-array.(tree)..."Set.t
1df60 68 65 20 72 6f 6f 74 20 6c 69 6e 65 73 20 61 72 72 61 79 2e 0a 41 72 67 75 6d 65 6e 74 20 54 52 he.root.lines.array..Argument.TR
1df80 45 45 20 6e 6f 64 65 73 20 74 72 65 65 20 74 6f 20 63 72 65 61 74 65 20 61 6e 20 61 72 72 61 79 EE.nodes.tree.to.create.an.array
1dfa0 20 6f 66 20 6c 69 6e 65 73 20 66 72 6f 6d 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20 28 .of.lines.from."...(let.((root.(
1dfc0 63 61 72 20 74 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 28 63 64 car.tree)).........(children.(cd
1dfe0 72 20 74 72 65 65 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 68 69 6c 64 20 63 68 69 r.tree))).....(dolist.(child.chi
1e000 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 65 74 2d 70 61 72 65 6e 74 2d 66 ldren).......(ztree-set-parent-f
1e020 6f 72 2d 6c 69 6e 65 20 28 7a 74 72 65 65 2d 63 61 72 2d 61 74 6f 6d 20 63 68 69 6c 64 29 20 72 or-line.(ztree-car-atom.child).r
1e040 6f 6f 74 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 69 73 74 70 20 63 68 69 6c 64 29 0a 20 oot).......(when.(listp.child)..
1e060 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 66 69 6c 6c 2d 70 61 72 65 6e 74 2d 61 72 72 61 79 20 .......(ztree-fill-parent-array.
1e080 63 68 69 6c 64 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 69 6e 73 65 72 74 child)))))...(defun.ztree-insert
1e0a0 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 73 20 28 70 61 74 68 29 0a 20 20 22 49 6e 73 65 72 74 20 -node-contents.(path)..."Insert.
1e0c0 6e 6f 64 65 20 63 6f 6e 74 65 6e 74 73 20 77 69 74 68 20 69 6e 69 74 69 61 6c 20 64 65 70 74 68 node.contents.with.initial.depth
1e0e0 20 30 2e 0a 60 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 73 2d .0..`ztree-insert-node-contents-
1e100 31 27 20 72 65 74 75 72 6e 20 74 68 65 20 74 72 65 65 20 6f 66 20 6c 69 6e 65 0a 6e 75 6d 62 65 1'.return.the.tree.of.line.numbe
1e120 72 73 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 77 68 6f 20 69 73 20 70 61 72 65 6e 74 20 6c 69 rs.to.determine.who.is.parent.li
1e140 6e 65 20 6f 66 20 74 68 65 0a 70 61 72 74 69 63 75 6c 61 72 20 6c 69 6e 65 2e 20 20 54 68 69 73 ne.of.the.particular.line...This
1e160 20 74 72 65 65 20 69 73 20 75 73 65 64 20 74 6f 20 64 72 61 77 20 74 68 65 0a 67 72 61 70 68 2e .tree.is.used.to.draw.the.graph.
1e180 0a 41 72 67 75 6d 65 6e 74 20 50 41 54 48 20 73 74 61 72 74 20 6e 6f 64 65 2e 22 0a 20 20 28 6c .Argument.PATH.start.node."...(l
1e1a0 65 74 20 28 28 74 72 65 65 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 6e 6f 64 65 2d 63 6f 6e et.((tree.(ztree-insert-node-con
1e1c0 74 65 6e 74 73 2d 31 20 70 61 74 68 20 30 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6e 75 6d 62 tents-1.path.0)).........;;.numb
1e1e0 65 72 20 6f 66 20 27 72 6f 77 73 27 20 69 6e 20 74 72 65 65 20 69 73 20 6c 61 73 74 20 6c 69 6e er.of.'rows'.in.tree.is.last.lin
1e200 65 20 6d 69 6e 75 73 20 73 74 61 72 74 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 28 6e 75 6d 2d e.minus.start.line.........(num-
1e220 6f 66 2d 69 74 65 6d 73 20 28 2d 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 of-items.(-.(line-number-at-pos.
1e240 28 70 6f 69 6e 74 29 29 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 29 29 0a 20 20 20 (point)).ztree-start-line)))....
1e260 20 3b 3b 20 63 72 65 61 74 65 20 61 20 70 61 72 65 6e 74 73 20 61 72 72 61 79 20 74 6f 20 73 74 .;;.create.a.parents.array.to.st
1e280 6f 72 65 20 70 61 72 65 6e 74 73 20 6f 66 20 6c 69 6e 65 73 0a 20 20 20 20 3b 3b 20 70 61 72 65 ore.parents.of.lines.....;;.pare
1e2a0 6e 74 73 20 61 72 72 61 79 20 75 73 65 64 20 66 6f 72 20 6e 61 76 69 67 61 74 69 6f 6e 20 77 69 nts.array.used.for.navigation.wi
1e2c0 74 68 20 74 68 65 20 42 53 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 70 61 72 65 6e 74 th.the.BS.....(setq.ztree-parent
1e2e0 2d 6c 69 6e 65 73 2d 61 72 72 61 79 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 6e 75 6d 2d 6f 66 -lines-array.(make-vector.num-of
1e300 2d 69 74 65 6d 73 20 30 29 29 0a 20 20 20 20 3b 3b 20 73 65 74 20 74 68 65 20 72 6f 6f 74 20 6e -items.0)).....;;.set.the.root.n
1e320 6f 64 65 20 69 6e 20 6c 69 6e 65 73 20 70 61 72 65 6e 74 73 20 61 72 72 61 79 0a 20 20 20 20 28 ode.in.lines.parents.array.....(
1e340 7a 74 72 65 65 2d 73 65 74 2d 70 61 72 65 6e 74 2d 66 6f 72 2d 6c 69 6e 65 20 7a 74 72 65 65 2d ztree-set-parent-for-line.ztree-
1e360 73 74 61 72 74 2d 6c 69 6e 65 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 0a 20 20 20 start-line.ztree-start-line)....
1e380 20 3b 3b 20 66 69 6c 6c 20 74 68 65 20 70 61 72 65 6e 74 20 61 72 72 72 61 79 20 66 72 6f 6d 20 .;;.fill.the.parent.arrray.from.
1e3a0 74 68 65 20 74 72 65 65 0a 20 20 20 20 28 7a 74 72 65 65 2d 66 69 6c 6c 2d 70 61 72 65 6e 74 2d the.tree.....(ztree-fill-parent-
1e3c0 61 72 72 61 79 20 74 72 65 65 29 0a 20 20 20 20 3b 3b 20 64 72 61 77 20 74 68 65 20 74 72 65 65 array.tree).....;;.draw.the.tree
1e3e0 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 64 65 70 74 68 20 30 20 61 6e 64 20 6f 66 66 73 65 .starting.with.depth.0.and.offse
1e400 74 20 30 0a 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 74 72 65 65 20 74 72 65 65 20 30 20 t.0.....(ztree-draw-tree.tree.0.
1e420 30 29 0a 20 20 20 20 3b 3b 20 66 6f 72 20 74 68 65 20 32 2d 73 69 64 65 64 20 74 72 65 65 20 77 0).....;;.for.the.2-sided.tree.w
1e440 65 20 6e 65 65 64 20 74 6f 20 64 72 61 77 20 74 68 65 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 e.need.to.draw.the.vertical.line
1e460 0a 20 20 20 20 3b 3b 20 61 6e 64 20 61 6e 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 72 65 65 0a 20 .....;;.and.an.additional.tree..
1e480 20 20 20 28 69 66 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 20 20 20 20 20 20 20 20 ...(if.ztree-two-sided-p........
1e4a0 20 20 20 20 20 3b 20 32 2d 73 69 64 65 64 20 74 72 65 65 0a 20 20 20 20 20 20 20 20 28 6c 65 74 .....;.2-sided.tree.........(let
1e4c0 20 28 28 77 69 64 74 68 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 29 29 0a 20 20 20 20 20 20 .((width.(window-width))).......
1e4e0 20 20 20 20 3b 3b 20 64 72 61 77 20 74 68 65 20 76 65 72 74 69 63 61 6c 20 6c 69 6e 65 20 69 6e ....;;.draw.the.vertical.line.in
1e500 20 74 68 65 20 6d 69 64 64 6c 65 20 6f 66 20 74 68 65 20 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 .the.middle.of.the.window.......
1e520 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 76 65 72 74 69 63 61 6c 2d 6c 69 6e 65 20 7a 74 ....(ztree-draw-vertical-line.zt
1e540 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ree-start-line..................
1e560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 2b 20 6e 75 6d 2d 6f 66 ...................(1-.(+.num-of
1e580 2d 69 74 65 6d 73 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 -items.ztree-start-line)).......
1e5a0 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 28 2f ..............................(/
1e5c0 20 77 69 64 74 68 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .width.2).......................
1e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 76 65 72 74 69 63 61 6c 2d 62 6f 72 64 65 72 29 0a ..............'vertical-border).
1e600 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 64 72 61 77 2d 74 72 65 65 20 74 72 65 65 20 ..........(ztree-draw-tree.tree.
1e620 30 20 28 31 2b 20 28 2f 20 77 69 64 74 68 20 32 29 29 29 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 0.(1+.(/.width.2)))))))...(defun
1e640 20 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 73 2d 31 20 28 6e .ztree-insert-node-contents-1.(n
1e660 6f 64 65 20 64 65 70 74 68 29 0a 20 20 22 52 65 63 75 72 73 69 76 65 6c 79 20 69 6e 73 65 72 74 ode.depth)..."Recursively.insert
1e680 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 4e 4f 44 45 20 77 69 74 68 20 63 75 72 72 65 .contents.of.the.NODE.with.curre
1e6a0 6e 74 20 44 45 50 54 48 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 65 78 70 61 6e 64 65 64 20 28 7a nt.DEPTH."...(let*.((expanded.(z
1e6c0 74 72 65 65 2d 69 73 2d 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 20 6e 6f 64 65 29 29 0a 20 20 20 tree-is-expanded-node.node))....
1e6e0 20 20 20 20 20 20 3b 3b 20 69 6e 73 65 72 74 20 6e 6f 64 65 20 65 6e 74 72 79 20 77 69 74 68 20 ......;;.insert.node.entry.with.
1e700 64 65 66 69 6e 65 64 20 64 65 70 74 68 0a 20 20 20 20 20 20 20 20 20 28 72 6f 6f 74 2d 6c 69 6e defined.depth..........(root-lin
1e720 65 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 65 6e 74 72 79 20 6e 6f 64 65 20 64 65 70 74 68 e.(ztree-insert-entry.node.depth
1e740 20 65 78 70 61 6e 64 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 63 68 69 6c 64 72 65 6e .expanded))..........;;.children
1e760 20 6c 69 73 74 20 69 73 20 74 68 65 20 6c 69 73 74 20 6f 66 20 6c 69 6e 65 73 20 77 68 69 63 68 .list.is.the.list.of.lines.which
1e780 20 61 72 65 20 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 66 20 74 68 65 .are.children..........;;.of.the
1e7a0 20 72 6f 6f 74 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 28 63 68 69 6c 64 72 65 6e 20 6e 69 .root.line..........(children.ni
1e7c0 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 65 78 70 61 6e 64 65 64 20 3b 3b 20 69 66 20 65 78 70 l)).....(when.expanded.;;.if.exp
1e7e0 61 6e 64 65 64 20 77 65 20 6e 65 65 64 20 74 6f 20 61 64 64 20 61 6c 6c 20 73 75 62 6e 6f 64 65 anded.we.need.to.add.all.subnode
1e800 73 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 73 20 28 7a 74 72 65 65 2d s.......(let*.((contents.(ztree-
1e820 67 65 74 2d 73 70 6c 69 74 74 65 64 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 73 20 6e 6f 64 65 29 29 get-splitted-node-contens.node))
1e840 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6e 74 65 6e 74 73 20 69 73 20 74 68 65 ..............;;.contents.is.the
1e860 20 6c 69 73 74 20 6f 66 20 32 20 65 6c 65 6d 65 6e 74 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 .list.of.2.elements:............
1e880 20 20 28 6e 6f 64 65 73 20 28 63 61 72 20 63 6f 6e 74 65 6e 74 73 29 29 20 20 20 20 20 3b 20 65 ..(nodes.(car.contents)).....;.e
1e8a0 78 70 61 6e 64 61 62 6c 65 20 65 6e 74 72 69 65 73 20 2d 20 6e 6f 64 65 73 0a 20 20 20 20 20 20 xpandable.entries.-.nodes.......
1e8c0 20 20 20 20 20 20 20 28 6c 65 61 66 73 20 28 63 64 72 20 63 6f 6e 74 65 6e 74 73 29 29 29 20 20 .......(leafs.(cdr.contents)))..
1e8e0 20 20 3b 20 6c 65 61 66 73 20 2d 20 77 68 69 63 68 20 64 6f 65 73 6e 27 74 20 68 61 76 65 20 73 ..;.leafs.-.which.doesn't.have.s
1e900 75 62 6c 65 61 66 73 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 74 65 72 61 74 65 20 74 68 72 6f 75 ubleafs.........;;.iterate.throu
1e920 67 68 20 61 6c 6c 20 65 78 70 61 6e 64 61 62 6c 65 20 65 6e 74 72 69 65 73 20 74 6f 20 69 6e 73 gh.all.expandable.entries.to.ins
1e940 65 72 74 20 74 68 65 6d 20 66 69 72 73 74 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 ert.them.first.........(dolist.(
1e960 6e 6f 64 65 20 6e 6f 64 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 69 74 20 69 node.nodes)...........;;.if.it.i
1e980 73 20 6e 6f 74 20 69 6e 20 74 68 65 20 66 69 6c 74 65 72 20 6c 69 73 74 0a 20 20 20 20 20 20 20 s.not.in.the.filter.list........
1e9a0 20 20 20 28 77 68 65 6e 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 76 69 73 69 62 6c 65 2d 70 20 6e ...(when.(ztree-node-visible-p.n
1e9c0 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 73 65 72 74 20 6e 6f 64 65 20 ode).............;;.insert.node.
1e9e0 6f 6e 20 74 68 65 20 6e 65 78 74 20 64 65 70 74 68 20 6c 65 76 65 6c 0a 20 20 20 20 20 20 20 20 on.the.next.depth.level.........
1ea00 20 20 20 20 3b 3b 20 61 6e 64 20 70 75 73 68 20 74 68 65 20 72 65 74 75 72 6e 69 6e 67 20 72 65 ....;;.and.push.the.returning.re
1ea20 73 75 6c 74 20 28 69 6e 20 66 6f 72 6d 20 28 72 6f 6f 74 20 63 68 69 6c 64 72 65 6e 29 29 0a 20 sult.(in.form.(root.children))..
1ea40 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20 74 68 65 20 63 68 69 6c 64 72 65 6e 20 6c 69 ...........;;.to.the.children.li
1ea60 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 7a 74 72 65 65 2d 69 6e 73 65 st.............(push.(ztree-inse
1ea80 72 74 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74 73 2d 31 20 6e 6f 64 65 20 28 31 2b 20 64 65 70 74 rt-node-contents-1.node.(1+.dept
1eaa0 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 72 65 6e 29 29 h))...................children))
1eac0 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 77 20 69 74 65 72 61 74 65 20 74 68 72 6f 75 67 68 ).........;;.now.iterate.through
1eae0 20 61 6c 6c 20 74 68 65 20 6c 65 61 66 73 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 .all.the.leafs.........(dolist.(
1eb00 6c 65 61 66 20 6c 65 61 66 73 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 6e 6f 74 20 leaf.leafs)...........;;.if.not.
1eb20 69 6e 20 66 69 6c 74 65 72 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 in.filter.list...........(when.(
1eb40 7a 74 72 65 65 2d 6e 6f 64 65 2d 76 69 73 69 62 6c 65 2d 70 20 6c 65 61 66 29 0a 20 20 20 20 20 ztree-node-visible-p.leaf)......
1eb60 20 20 20 20 20 20 20 3b 3b 20 69 6e 73 65 72 74 20 74 68 65 20 6c 65 61 66 20 61 6e 64 20 61 64 .......;;.insert.the.leaf.and.ad
1eb80 64 20 69 74 20 74 6f 20 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 d.it.to.children.............(pu
1eba0 73 68 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 65 6e 74 72 79 20 6c 65 61 66 20 28 31 2b 20 sh.(ztree-insert-entry.leaf.(1+.
1ebc0 64 65 70 74 68 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 depth).nil)...................ch
1ebe0 69 6c 64 72 65 6e 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 72 65 73 75 6c 74 20 76 61 6c 75 65 20 ildren))))).....;;.result.value.
1ec00 69 73 20 74 68 65 20 6c 69 73 74 20 2d 20 68 65 61 64 20 69 73 20 74 68 65 20 72 6f 6f 74 20 6c is.the.list.-.head.is.the.root.l
1ec20 69 6e 65 2c 0a 20 20 20 20 3b 3b 20 72 65 73 74 20 61 72 65 20 63 68 69 6c 64 72 65 6e 0a 20 20 ine,.....;;.rest.are.children...
1ec40 20 20 28 63 6f 6e 73 20 72 6f 6f 74 2d 6c 69 6e 65 20 63 68 69 6c 64 72 65 6e 29 29 29 0a 0a 28 ..(cons.root-line.children)))..(
1ec60 64 65 66 75 6e 20 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 65 6e 74 72 79 20 28 6e 6f 64 65 20 64 defun.ztree-insert-entry.(node.d
1ec80 65 70 74 68 20 65 78 70 61 6e 64 65 64 29 0a 20 20 22 49 6e 73 65 6c 74 20 74 68 65 20 4e 4f 44 epth.expanded)..."Inselt.the.NOD
1eca0 45 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 77 69 74 68 20 73 70 65 63 69 E.to.the.current.line.with.speci
1ecc0 66 69 65 64 20 44 45 50 54 48 20 61 6e 64 20 45 58 50 41 4e 44 45 44 20 73 74 61 74 65 2e 22 0a fied.DEPTH.and.EXPANDED.state.".
1ece0 20 20 28 6c 65 74 2a 20 28 28 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 ..(let*.((line.(line-number-at-p
1ed00 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 70 72 6f 70 65 72 74 69 65 73 20 os))..........;;.the.properties.
1ed20 6f 66 20 74 68 65 20 6c 69 6e 65 2e 20 74 68 65 79 20 77 69 6c 6c 20 62 65 20 75 70 64 61 74 65 of.the.line..they.will.be.update
1ed40 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 77 69 74 68 20 74 68 65 20 6f 66 66 73 65 74 20 6f 66 d..........;;.with.the.offset.of
1ed60 20 74 68 65 20 74 65 78 74 20 61 6e 64 20 72 65 6c 65 76 61 6e 74 20 73 69 64 65 20 69 6e 66 6f .the.text.and.relevant.side.info
1ed80 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 rmation..........(line-propertie
1eda0 73 20 28 67 65 74 68 61 73 68 20 6c 69 6e 65 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 2d s.(gethash.line.ztree-line-tree-
1edc0 70 72 6f 70 65 72 74 69 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 61 62 6c properties))..........(expandabl
1ede0 65 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 65 78 70 61 6e 64 61 62 6c 65 2d 70 20 6e 6f 64 65 29 e.(ztree-node-expandable-p.node)
1ee00 29 0a 20 20 20 20 20 20 20 20 20 28 73 68 6f 72 74 2d 6e 61 6d 65 20 28 7a 74 72 65 65 2d 6e 6f )..........(short-name.(ztree-no
1ee20 64 65 2d 6c 65 66 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 de-left-short-name.node)).......
1ee40 20 20 20 28 63 6f 75 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 6c 65 66 74 20 0a 20 20 20 20 20 20 20 ...(count-children-left.........
1ee60 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 78 70 61 6e 64 61 62 6c 65 20 7a 74 72 65 65 2d 73 ...(when.(and.expandable.ztree-s
1ee80 68 6f 77 2d 6e 75 6d 62 65 72 2d 6f 66 2d 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 how-number-of-children).........
1eea0 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(ignore-errors..............
1eec0 20 28 6c 65 6e 67 74 68 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 .(length.(cl-remove-if.(lambda.(
1eee0 6e 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 n)..............................
1ef00 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 0a .........(and.ztree-two-sided-p.
1ef20 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 ................................
1ef40 20 20 20 20 20 20 20 20 20 20 20 28 65 71 6c 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(eql.................
1ef60 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 7a 74 .............................(zt
1ef80 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ree-node-side.n)................
1efa0 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 27 72 69 .............................'ri
1efc0 67 68 74 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 20 20 20 ght)))..........................
1efe0 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 ...........(ztree-node-children.
1f000 6e 6f 64 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 75 6e 74 2d 63 68 69 6c 64 node))))))..........(count-child
1f020 72 65 6e 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65 ren-right...........(when.(and.e
1f040 78 70 61 6e 64 61 62 6c 65 20 7a 74 72 65 65 2d 73 68 6f 77 2d 6e 75 6d 62 65 72 2d 6f 66 2d 63 xpandable.ztree-show-number-of-c
1f060 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 hildren).............(ignore-err
1f080 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 28 63 6c 2d 72 65 ors...............(length.(cl-re
1f0a0 6d 6f 76 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 move-if.(lambda.(n).............
1f0c0 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 6e 64 20 7a ..........................(and.z
1f0e0 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tree-two-sided-p................
1f100 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 65 71 6c ............................(eql
1f120 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 ................................
1f140 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 6e 29 .............(ztree-node-side.n)
1f160 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 ................................
1f180 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 65 66 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .............'left)))...........
1f1a0 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 7a 74 72 65 65 ..........................(ztree
1f1c0 2d 6e 6f 64 65 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64 65 29 29 29 29 29 29 29 0a 20 20 20 20 28 -node-children.node))))))).....(
1f1e0 69 66 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 20 20 20 20 20 20 20 20 20 20 20 3b if.ztree-two-sided-p...........;
1f200 20 32 2d 73 69 64 65 64 20 74 72 65 65 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 69 67 .2-sided.tree.........(let.((rig
1f220 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 72 69 67 68 74 2d ht-short-name.(ztree-node-right-
1f240 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 short-name.node))...............
1f260 28 73 69 64 65 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 73 69 64 65 20 6e 6f 64 65 29 29 0a 20 20 (side.(ztree-node-side.node))...
1f280 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 64 74 68 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 ............(width.(window-width
1f2a0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 73 69 64 65 20 27 6c 65 )))...........(when.(eq.side.'le
1f2c0 66 74 29 20 20 28 73 65 74 71 20 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 22 22 29 29 ft)..(setq.right-short-name.""))
1f2e0 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 73 69 64 65 20 27 72 69 67 68 74 ...........(when.(eq.side.'right
1f300 29 20 28 73 65 74 71 20 73 68 6f 72 74 2d 6e 61 6d 65 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 ).(setq.short-name."")).........
1f320 20 20 28 73 65 74 71 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 ..(setq.line-properties.........
1f340 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 ........(plist-put.line-properti
1f360 65 73 20 27 6f 66 66 73 65 74 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 es.'offset......................
1f380 20 20 20 20 20 20 20 3b 3b 20 69 6e 73 65 72 74 20 6c 65 66 74 20 73 69 64 65 20 61 6e 64 20 73 .......;;.insert.left.side.and.s
1f3a0 61 76 65 20 74 68 65 20 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ave.the.offset..................
1f3c0 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 73 69 6e 67 6c 65 2d 65 ..........(ztree-insert-single-e
1f3e0 6e 74 72 79 20 73 68 6f 72 74 2d 6e 61 6d 65 20 64 65 70 74 68 0a 20 20 20 20 20 20 20 20 20 20 ntry.short-name.depth...........
1f400 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 ................................
1f420 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 61 6e 64 61 62 6c 65 20 65 78 70 61 6e 64 65 64 20 ............expandable.expanded.
1f440 30 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 0...............................
1f460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 75 6e 74 2d 63 68 ........................count-ch
1f480 69 6c 64 72 65 6e 2d 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ildren-left.....................
1f4a0 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 ................................
1f4c0 20 20 28 77 68 65 6e 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 0a 20 20 20 20 20 20 ..(when.ztree-two-sided-p.......
1f4e0 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 ................................
1f500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 66 61 ..................(ztree-node-fa
1f520 63 65 20 6e 6f 64 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 69 67 68 74 20 ce.node)))))...........;;.right.
1f540 73 69 64 65 0a 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 73 69 6e side...........(ztree-insert-sin
1f560 67 6c 65 2d 65 6e 74 72 79 20 72 69 67 68 74 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 64 65 70 74 68 gle-entry.right-short-name.depth
1f580 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 ................................
1f5a0 20 20 20 20 20 20 65 78 70 61 6e 64 61 62 6c 65 20 65 78 70 61 6e 64 65 64 20 28 31 2b 20 28 2f ......expandable.expanded.(1+.(/
1f5c0 20 77 69 64 74 68 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .width.2))......................
1f5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 75 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 72 ................count-children-r
1f600 69 67 68 74 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 ight............................
1f620 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 7a 74 72 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d ..........(when.ztree-two-sided-
1f640 70 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 p...............................
1f660 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 6e 6f 64 65 2d 66 61 63 65 20 6e 6f 64 65 29 29 .........(ztree-node-face.node))
1f680 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 )...........(setq.line-propertie
1f6a0 73 20 28 70 6c 69 73 74 2d 70 75 74 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 73 20 27 73 69 s.(plist-put.line-properties.'si
1f6c0 64 65 20 73 69 64 65 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 6f 6e 65 20 73 69 64 65 64 20 76 69 de.side))).......;;.one.sided.vi
1f6e0 65 77 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 73 20 28 ew.......(setq.line-properties.(
1f700 70 6c 69 73 74 2d 70 75 74 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 73 20 27 6f 66 66 73 65 plist-put.line-properties.'offse
1f720 74 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 t...............................
1f740 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 73 69 6e 67 6c 65 2d 65 6e .........(ztree-insert-single-en
1f760 74 72 79 20 73 68 6f 72 74 2d 6e 61 6d 65 20 64 65 70 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 try.short-name.depth............
1f780 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 ................................
1f7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 61 6e 64 61 62 6c .......................expandabl
1f7c0 65 20 65 78 70 61 6e 64 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.expanded......................
1f7e0 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 ................................
1f800 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 28 77 68 65 6e 20 65 78 70 61 6e 64 61 62 6c 65 0a .............0.(when.expandable.
1f820 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 ................................
1f840 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 ................................
1f860 20 20 20 20 20 20 63 6f 75 6e 74 2d 63 68 69 6c 64 72 65 6e 2d 6c 65 66 74 29 29 29 29 29 0a 20 ......count-children-left)))))..
1f880 20 20 20 28 70 75 74 68 61 73 68 20 6c 69 6e 65 20 6e 6f 64 65 20 7a 74 72 65 65 2d 6c 69 6e 65 ...(puthash.line.node.ztree-line
1f8a0 2d 74 6f 2d 6e 6f 64 65 2d 74 61 62 6c 65 29 0a 20 20 20 20 3b 3b 20 73 61 76 65 20 74 68 65 20 -to-node-table).....;;.save.the.
1f8c0 70 72 6f 70 65 72 74 69 65 73 20 66 6f 72 20 74 68 65 20 6c 69 6e 65 20 2d 20 73 69 64 65 20 61 properties.for.the.line.-.side.a
1f8e0 6e 64 20 74 65 78 74 20 6f 66 66 73 65 74 0a 20 20 20 20 28 70 75 74 68 61 73 68 20 6c 69 6e 65 nd.text.offset.....(puthash.line
1f900 20 6c 69 6e 65 2d 70 72 6f 70 65 72 74 69 65 73 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 .line-properties.ztree-line-tree
1f920 2d 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 -properties).....(insert."\n")..
1f940 20 20 20 6c 69 6e 65 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 73 ...line))..(defun.ztree-insert-s
1f960 69 6e 67 6c 65 2d 65 6e 74 72 79 20 28 73 68 6f 72 74 2d 6e 61 6d 65 20 64 65 70 74 68 0a 20 20 ingle-entry.(short-name.depth...
1f980 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 ................................
1f9a0 20 20 20 20 20 20 20 20 20 20 20 65 78 70 61 6e 64 61 62 6c 65 20 65 78 70 61 6e 64 65 64 0a 20 ...........expandable.expanded..
1f9c0 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 ................................
1f9e0 20 20 20 20 20 20 20 20 20 20 20 20 6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ............offset..............
1fa00 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 ................................
1fa20 63 6f 75 6e 74 2d 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 count-children..................
1fa40 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 26 6f 70 74 ............................&opt
1fa60 69 6f 6e 61 6c 20 66 61 63 65 29 0a 20 20 22 57 72 69 74 65 73 20 61 20 53 48 4f 52 54 2d 4e 41 ional.face)..."Writes.a.SHORT-NA
1fa80 4d 45 20 69 6e 20 61 20 70 72 6f 70 65 72 20 70 6f 73 69 74 69 6f 6e 20 77 69 74 68 20 74 68 65 ME.in.a.proper.position.with.the
1faa0 20 74 79 70 65 20 67 69 76 65 6e 2e 0a 57 72 69 74 65 73 20 61 20 73 74 72 69 6e 67 20 77 69 74 .type.given..Writes.a.string.wit
1fac0 68 20 67 69 76 65 6e 20 44 45 50 54 48 2c 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 5b 20 5d h.given.DEPTH,.prefixed.with.[.]
1fae0 20 69 66 20 45 58 50 41 4e 44 41 42 4c 45 0a 61 6e 64 20 5b 2d 5d 20 6f 72 20 5b 2b 5d 20 64 65 .if.EXPANDABLE.and.[-].or.[+].de
1fb00 70 65 6e 64 69 6e 67 20 6f 6e 20 69 66 20 69 74 20 69 73 20 45 58 50 41 4e 44 45 44 20 66 72 6f pending.on.if.it.is.EXPANDED.fro
1fb20 6d 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 4f 46 46 53 45 54 2e 0a 49 66 20 60 7a 74 72 65 m.the.specified.OFFSET..If.`ztre
1fb40 65 2d 73 68 6f 77 2d 6e 75 6d 62 65 72 2d 6f 66 2d 63 68 69 6c 64 72 65 6e 27 20 69 73 20 73 65 e-show-number-of-children'.is.se
1fb60 74 20 74 6f 20 74 20 74 68 65 20 43 4f 55 4e 54 2d 43 48 49 4c 44 52 45 4e 0a 61 72 67 75 6d 65 t.to.t.the.COUNT-CHILDREN.argume
1fb80 6e 74 20 69 73 20 75 73 65 64 20 74 6f 20 70 72 65 73 65 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 nt.is.used.to.present.number.of.
1fba0 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 65 78 70 61 6e 64 61 62 6c 65 20 69 74 65 6d 2e 0a entries.in.the.expandable.item..
1fbc0 43 4f 55 4e 54 2d 43 48 49 4c 44 52 45 4e 20 6d 69 67 68 74 20 62 65 20 6e 75 6c 6c 20 69 66 20 COUNT-CHILDREN.might.be.null.if.
1fbe0 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 65 78 70 61 6e 64 61 62 6c 65 20 6e 6f 64 65 20 the.contents.of.expandable.node.
1fc00 61 72 65 0a 6e 6f 74 20 61 63 63 65 73 73 69 62 6c 65 2e 0a 4f 70 74 69 6f 6e 61 6c 20 61 72 67 are.not.accessible..Optional.arg
1fc20 75 6d 65 6e 74 20 46 41 43 45 20 66 61 63 65 20 74 6f 20 77 72 69 74 65 20 74 65 78 74 20 77 69 ument.FACE.face.to.write.text.wi
1fc40 74 68 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 77 68 65 72 65 20 74 th..Returns.the.position.where.t
1fc60 68 65 20 74 65 78 74 20 73 74 61 72 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 he.text.starts."...(let.((result
1fc80 20 30 29 0a 20 20 20 20 20 20 20 20 28 6e 6f 64 65 2d 73 69 67 6e 20 23 27 28 6c 61 6d 62 64 61 .0).........(node-sign.#'(lambda
1fca0 20 28 65 78 70 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 28 6c .(exp)........................(l
1fcc0 65 74 20 28 28 73 69 67 6e 20 28 63 6f 6e 63 61 74 20 22 5b 22 20 28 69 66 20 65 78 70 20 22 2d et.((sign.(concat."[".(if.exp."-
1fce0 22 20 22 2b 22 29 20 22 5d 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "."+")."]")))...................
1fd00 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 69 67 6e 0a .......(insert.(propertize.sign.
1fd20 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 ................................
1fd40 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 0a 20 20 20 .............'font-lock-face....
1fd60 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 ................................
1fd80 20 20 20 20 20 20 20 20 20 20 7a 74 72 65 65 70 2d 65 78 70 61 6e 64 2d 73 69 67 6e 2d 66 61 63 ..........ztreep-expand-sign-fac
1fda0 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 66 61 63 65 20 74 6f 20 75 73 65 2e 20 69 e))))).........;;.face.to.use..i
1fdc0 66 20 46 41 43 45 20 69 73 20 6e 6f 74 20 6e 75 6c 6c 2c 20 75 73 65 20 69 74 2c 20 6f 74 68 65 f.FACE.is.not.null,.use.it,.othe
1fde0 72 77 69 73 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 64 65 73 69 64 65 20 66 72 6f 6d 20 74 68 65 rwise.........;;.deside.from.the
1fe00 20 6e 6f 64 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 28 65 6e 74 72 79 2d 66 61 63 65 20 28 .node.type.........(entry-face.(
1fe20 63 6f 6e 64 20 28 66 61 63 65 20 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cond.(face.face)................
1fe40 20 20 20 20 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 61 62 6c 65 20 27 7a 74 72 65 65 70 2d 6e ...........(expandable.'ztreep-n
1fe60 6f 64 65 2d 66 61 63 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 ode-face).......................
1fe80 20 20 20 20 28 74 20 7a 74 72 65 65 70 2d 6c 65 61 66 2d 66 61 63 65 29 29 29 29 0a 20 20 20 20 ....(t.ztreep-leaf-face)))).....
1fea0 3b 3b 20 6d 6f 76 65 2d 74 6f 2d 63 6f 6c 75 6d 6e 20 69 6e 20 63 6f 6e 74 72 61 73 74 20 74 6f ;;.move-to-column.in.contrast.to
1fec0 20 69 6e 73 65 72 74 20 72 65 75 73 65 73 20 74 68 65 20 6c 61 73 74 20 70 72 6f 70 65 72 74 79 .insert.reuses.the.last.property
1fee0 0a 20 20 20 20 3b 3b 20 73 6f 20 6e 65 65 64 20 74 6f 20 63 6c 65 61 72 20 69 74 0a 20 20 20 20 .....;;.so.need.to.clear.it.....
1ff00 28 6c 65 74 20 28 28 73 74 61 72 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 (let.((start-pos.(point)))......
1ff20 20 28 6d 6f 76 65 2d 74 6f 2d 63 6f 6c 75 6d 6e 20 6f 66 66 73 65 74 20 74 29 0a 20 20 20 20 20 .(move-to-column.offset.t)......
1ff40 20 28 72 65 6d 6f 76 65 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 73 74 61 72 74 2d 70 .(remove-text-properties.start-p
1ff60 6f 73 20 28 70 6f 69 6e 74 29 20 27 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 6e 69 6c 29 os.(point).'(font-lock-face.nil)
1ff80 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 6c )).....(delete-region.(point).(l
1ffa0 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 3b 3b 20 65 76 65 72 79 20 ine-end-position)).....;;.every.
1ffc0 69 6e 64 65 6e 74 61 74 69 6f 6e 20 6c 65 76 65 6c 20 69 73 20 34 20 63 68 61 72 61 63 74 65 72 indentation.level.is.4.character
1ffe0 73 0a 20 20 20 20 28 77 68 65 6e 20 28 3e 20 64 65 70 74 68 20 30 29 0a 20 20 20 20 20 20 28 69 s.....(when.(>.depth.0).......(i
20000 6e 73 65 72 74 2d 63 68 61 72 20 3f 5c 73 20 28 2a 20 34 20 64 65 70 74 68 29 29 29 20 20 20 20 nsert-char.?\s.(*.4.depth)))....
20020 20 20 20 20 20 20 20 3b 20 69 6e 73 65 72 74 20 34 20 73 70 61 63 65 73 0a 20 20 20 20 28 77 68 .......;.insert.4.spaces.....(wh
20040 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 68 6f 72 74 2d 6e 61 6d 65 29 20 30 29 0a 20 20 20 en.(>.(length.short-name).0)....
20060 20 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 ...(let.((start-pos.(point)))...
20080 20 20 20 20 20 20 28 69 66 20 65 78 70 61 6e 64 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 ......(if.expandable............
200a0 20 28 66 75 6e 63 61 6c 6c 20 6e 6f 64 65 2d 73 69 67 6e 20 65 78 70 61 6e 64 65 64 29 29 20 20 .(funcall.node-sign.expanded))..
200c0 20 3b 20 66 6f 72 20 65 78 70 61 6e 64 61 62 6c 65 20 6e 6f 64 65 73 20 69 6e 73 65 72 74 20 22 .;.for.expandable.nodes.insert."
200e0 5b 2b 2f 2d 5d 22 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 66 6f [+/-]".........;;.indentation.fo
20100 72 20 6c 65 61 66 73 20 34 20 73 70 61 63 65 73 20 66 72 6f 6d 20 74 68 65 20 6e 6f 64 65 20 6e r.leafs.4.spaces.from.the.node.n
20120 61 6d 65 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 63 68 61 72 20 3f 5c 73 20 28 2d 20 ame.........(insert-char.?\s.(-.
20140 34 20 28 2d 20 28 70 6f 69 6e 74 29 20 73 74 61 72 74 2d 70 6f 73 29 29 29 29 0a 20 20 20 20 20 4.(-.(point).start-pos))))......
20160 20 3b 3b 20 73 61 76 65 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 62 65 67 .;;.save.the.position.of.the.beg
20180 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 74 65 78 74 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 inning.of.the.text.......(setq.r
201a0 65 73 75 6c 74 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 28 69 esult.(current-column)).......(i
201c0 6e 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 68 6f 72 74 2d 6e 61 6d 65 20 27 66 6f nsert.(propertize.short-name.'fo
201e0 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 65 6e 74 72 79 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 nt-lock-face.entry-face)).......
20200 3b 3b 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 61 64 64 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 69 6c ;;.optionally.add.number.of.chil
20220 64 72 65 6e 20 69 6e 20 62 72 61 63 65 73 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 dren.in.braces.......(when.(and.
20240 7a 74 72 65 65 2d 73 68 6f 77 2d 6e 75 6d 62 65 72 2d 6f 66 2d 63 68 69 6c 64 72 65 6e 20 65 78 ztree-show-number-of-children.ex
20260 70 61 6e 64 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 2d 73 pandable).........(let.((count-s
20280 74 72 20 28 66 6f 72 6d 61 74 20 22 20 5b 25 73 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 tr.(format.".[%s]"..............
202a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 6f 75 6e 74 2d 63 68 ....................(if.count-ch
202c0 69 6c 64 72 65 6e 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 63 6f 75 6e 74 2d 63 ildren.(number-to-string.count-c
202e0 68 69 6c 64 72 65 6e 29 20 22 4e 2f 41 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e hildren)."N/A"))))...........(in
20300 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 63 6f 75 6e 74 2d 73 74 72 20 27 66 6f 6e 74 sert.(propertize.count-str.'font
20320 2d 6c 6f 63 6b 2d 66 61 63 65 20 7a 74 72 65 65 70 2d 6e 6f 64 65 2d 63 6f 75 6e 74 2d 63 68 69 -lock-face.ztreep-node-count-chi
20340 6c 64 72 65 6e 2d 66 61 63 65 29 29 29 29 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a 0a 28 ldren-face))))).....result))...(
20360 64 65 66 75 6e 20 7a 74 72 65 65 2d 6a 75 6d 70 2d 73 69 64 65 20 28 29 0a 20 20 22 4a 75 6d 70 defun.ztree-jump-side.()..."Jump
20380 20 74 6f 20 61 6e 6f 74 68 65 72 20 73 69 64 65 20 66 6f 72 20 32 2d 73 69 64 65 64 20 74 72 65 .to.another.side.for.2-sided.tre
203a0 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 7a 74 72 es."...(interactive)...(when.ztr
203c0 65 65 2d 74 77 6f 2d 73 69 64 65 64 2d 70 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 32 2d 73 ee-two-sided-p.............;.2-s
203e0 69 64 65 64 20 74 72 65 65 0a 20 20 20 20 28 6c 65 74 20 28 28 63 65 6e 74 65 72 20 28 2f 20 28 ided.tree.....(let.((center.(/.(
20400 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 32 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3c 20 window-width).2))).......(if.(<.
20420 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 20 63 65 6e 74 65 72 29 0a 20 20 20 20 20 20 20 (current-column).center)........
20440 20 20 20 28 6d 6f 76 65 2d 74 6f 2d 63 6f 6c 75 6d 6e 20 28 31 2b 20 63 65 6e 74 65 72 29 29 0a ...(move-to-column.(1+.center)).
20460 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 74 6f 2d 63 6f 6c 75 6d 6e 20 31 29 29 0a 20 20 20 20 ........(move-to-column.1)).....
20480 20 20 3b 3b 20 6a 75 73 74 20 72 65 63 61 6c 63 75 6c 61 74 65 20 61 6e 64 20 6d 6f 76 65 20 74 ..;;.just.recalculate.and.move.t
204a0 6f 20 70 72 6f 70 65 72 20 63 6f 6c 75 6d 6e 0a 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 63 72 o.proper.column.......(ztree-scr
204c0 6f 6c 6c 2d 74 6f 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 oll-to-line.(line-number-at-pos)
204e0 29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 73 61 76 65 2d 63 75 72 72 65 6e 74 ))))...(defun.ztree-save-current
20500 2d 70 6f 73 69 74 69 6f 6e 20 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 -position.()..."Save.the.current
20520 20 70 6f 73 69 74 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 .position.into.the.global.variab
20540 6c 65 2e 22 0a 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 6f 6e le."...(setq.ztree-prev-position
20560 20 28 63 6f 6e 73 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e .(cons.(line-number-at-pos.(poin
20580 74 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 20 t)).............................
205a0 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a 0a 0a 28 64 65 66 ......(current-column))))...(def
205c0 75 6e 20 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 20 28 26 6f 70 74 69 6f 6e un.ztree-refresh-buffer.(&option
205e0 61 6c 20 6c 69 6e 65 29 0a 20 20 22 52 65 66 72 65 73 68 20 74 68 65 20 62 75 66 66 65 72 2e 0a al.line)..."Refresh.the.buffer..
20600 4f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 4c 49 4e 45 20 73 63 72 6f 6c 6c 20 74 6f Optional.argument.LINE.scroll.to
20620 20 74 68 65 20 6c 69 6e 65 20 67 69 76 65 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 .the.line.given."...(interactive
20640 29 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 71 75 61 6c 20 6d 61 6a 6f 72 2d 6d 6f 64 65 )...(when.(and.(equal.major-mode
20660 20 27 7a 74 72 65 65 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6f 75 6e .'ztree-mode)..............(boun
20680 64 70 20 27 7a 74 72 65 65 2d 73 74 61 72 74 2d 6e 6f 64 65 29 29 0a 20 20 20 20 28 6c 65 74 20 dp.'ztree-start-node)).....(let.
206a0 28 28 70 72 65 76 2d 70 6f 73 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 6f 6e 29 29 ((prev-pos.ztree-prev-position))
206c0 0a 20 20 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 6c 69 6e 65 2d 74 6f 2d 6e 6f 64 65 2d .......(setq.ztree-line-to-node-
206e0 74 61 62 6c 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 3b table.(make-hash-table)).......;
20700 3b 20 63 72 65 61 74 65 20 61 20 68 61 73 68 20 74 61 62 6c 65 20 6f 66 20 6e 6f 64 65 20 70 72 ;.create.a.hash.table.of.node.pr
20720 6f 70 65 72 74 69 65 73 20 66 6f 72 20 6c 69 6e 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 7a 74 operties.for.line.......(setq.zt
20740 72 65 65 2d 6c 69 6e 65 2d 74 72 65 65 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6d 61 6b 65 2d 68 ree-line-tree-properties.(make-h
20760 61 73 68 2d 74 61 62 6c 65 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 ash-table)).......(let.((inhibit
20780 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 61 -read-only.t)).........(ztree-sa
207a0 76 65 2d 63 75 72 72 65 6e 74 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 28 65 72 ve-current-position).........(er
207c0 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 74 72 65 65 2d ase-buffer).........(ztree-tree-
207e0 68 65 61 64 65 72 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 73 74 61 72 header).........(setq.ztree-star
20800 74 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e t-line.(line-number-at-pos.(poin
20820 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 69 6e 73 65 72 74 2d 6e 6f 64 65 2d t))).........(ztree-insert-node-
20840 63 6f 6e 74 65 6e 74 73 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 contents.ztree-start-node)......
20860 20 20 20 28 63 6f 6e 64 20 28 6c 69 6e 65 20 3b 3b 20 6c 6f 63 61 6c 20 72 65 66 72 65 73 68 2c ...(cond.(line.;;.local.refresh,
20880 20 73 63 72 6f 6c 6c 20 74 6f 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .scroll.to.line................(
208a0 7a 74 72 65 65 2d 73 63 72 6f 6c 6c 2d 74 6f 2d 6c 69 6e 65 20 6c 69 6e 65 29 0a 20 20 20 20 20 ztree-scroll-to-line.line)......
208c0 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 72 65 76 2d 70 6f 73 0a 20 20 20 20 20 20 20 ..........(when.prev-pos........
208e0 20 20 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 ..........(beginning-of-line)...
20900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 28 63 64 ...............(goto-char.(+.(cd
20920 72 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 29 29 29 r.ztree-prev-position).(point)))
20940 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6e 75 6c 6c 20 6c 69 6e ))...............((and.(null.lin
20960 65 29 20 28 6e 75 6c 6c 20 70 72 65 76 2d 70 6f 73 29 29 20 3b 3b 20 66 69 72 73 74 20 72 65 66 e).(null.prev-pos)).;;.first.ref
20980 72 65 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 63 72 6f 6c resh................(ztree-scrol
209a0 6c 2d 74 6f 2d 6c 69 6e 65 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6c 69 6e 65 29 0a 20 20 20 20 l-to-line.ztree-start-line).....
209c0 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 61 76 65 2d 63 75 72 72 65 6e 74 2d 70 ...........(ztree-save-current-p
209e0 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6e osition))...............((and.(n
20a00 75 6c 6c 20 6c 69 6e 65 29 20 70 72 65 76 2d 70 6f 73 29 20 3b 3b 20 6e 6f 74 20 66 69 72 73 74 ull.line).prev-pos).;;.not.first
20a20 20 72 65 66 72 65 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 73 74 6f .refresh................;;.resto
20a40 72 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 20 69 66 20 70 6f 73 73 69 62 6c 65 0a 20 re.cursor.position.if.possible..
20a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 74 72 65 65 2d 73 63 72 6f 6c 6c 2d 74 6f 2d 6c ..............(ztree-scroll-to-l
20a80 69 6e 65 20 28 63 61 72 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 ine.(car.ztree-prev-position))..
20aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 ..............(beginning-of-line
20ac0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 28 )................(goto-char.(+.(
20ae0 63 64 72 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 29 cdr.ztree-prev-position).(point)
20b00 29 29 29 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 6c 61 73 74 2d 77 69 6e 64 )))))).....(setq.ztree-last-wind
20b20 6f 77 2d 77 69 64 74 68 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 29 29 29 0a 0a 20 20 20 20 ow-width.(window-width))))......
20b40 20 20 20 20 20 20 20 20 20 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 63 68 61 6e 67 65 2d 73 ...........(defun.ztree-change-s
20b60 74 61 72 74 2d 6e 6f 64 65 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 66 72 65 73 68 20 74 68 65 20 tart-node.(node)..."Refresh.the.
20b80 62 75 66 66 65 72 20 73 65 74 74 69 6e 67 20 74 68 65 20 6e 65 77 20 72 6f 6f 74 20 4e 4f 44 45 buffer.setting.the.new.root.NODE
20ba0 2e 0a 54 68 69 73 20 77 69 6c 6c 20 72 65 75 73 65 20 61 6c 6c 20 6f 74 68 65 72 20 73 65 74 74 ..This.will.reuse.all.other.sett
20bc0 69 6e 67 73 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 7a 74 72 65 65 20 62 75 66 66 65 ings.for.the.current.ztree.buffe
20be0 72 2c 20 62 75 74 0a 63 68 61 6e 67 65 20 74 68 65 20 72 6f 6f 74 20 6e 6f 64 65 20 74 6f 20 74 r,.but.change.the.root.node.to.t
20c00 68 65 20 6e 6f 64 65 20 73 70 65 63 69 66 69 65 64 2e 22 0a 20 20 28 73 65 74 71 20 7a 74 72 65 he.node.specified."...(setq.ztre
20c20 65 2d 73 74 61 72 74 2d 6e 6f 64 65 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d e-start-node.node.........ztree-
20c40 65 78 70 61 6e 64 65 64 2d 6e 6f 64 65 73 2d 6c 69 73 74 20 28 6c 69 73 74 20 7a 74 72 65 65 2d expanded-nodes-list.(list.ztree-
20c60 73 74 61 72 74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 6e 20 74 68 65 20 start-node).........;;.then.the.
20c80 6e 65 77 20 72 6f 6f 74 20 6e 6f 64 65 20 69 73 20 67 69 76 65 6e 2c 20 6e 6f 20 73 65 6e 73 65 new.root.node.is.given,.no.sense
20ca0 20 74 6f 20 70 72 65 73 65 72 76 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 20 63 75 72 73 6f 72 .to.preserve.........;;.a.cursor
20cc0 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 7a 74 72 65 65 2d 70 72 65 76 2d 70 6f 73 .position.........ztree-prev-pos
20ce0 69 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 ition.nil)...(ztree-refresh-buff
20d00 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 er))..(defun.ztree-previous-line
20d20 20 28 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 74 68 65 20 70 6f 69 6e 74 20 74 6f 20 41 52 47 20 .(arg)..."Move.the.point.to.ARG.
20d40 6c 69 6e 65 73 20 75 70 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 5e 70 22 29 0a 20 lines.up"...(interactive."^p")..
20d60 20 28 7a 74 72 65 65 2d 6e 65 78 74 2d 6c 69 6e 65 20 28 2d 20 28 6f 72 20 61 72 67 20 31 29 29 .(ztree-next-line.(-.(or.arg.1))
20d80 29 29 0a 0a 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 6e 65 78 74 2d 6c 69 6e 65 20 28 61 72 67 ))...(defun.ztree-next-line.(arg
20da0 29 0a 20 20 22 4d 6f 76 65 20 74 68 65 20 70 6f 69 6e 74 20 74 6f 20 41 52 47 20 6c 69 6e 65 73 )..."Move.the.point.to.ARG.lines
20dc0 20 64 6f 77 6e 22 20 20 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 5e 70 22 29 0a 20 20 .down".....(interactive."^p")...
20de0 28 7a 74 72 65 65 2d 6d 6f 76 65 2d 6c 69 6e 65 20 61 72 67 29 29 0a 0a 0a 28 64 65 66 75 6e 20 (ztree-move-line.arg))...(defun.
20e00 7a 74 72 65 65 2d 6d 6f 76 65 2d 6c 69 6e 65 20 28 63 6f 75 6e 74 29 0a 20 20 22 4d 6f 76 65 20 ztree-move-line.(count)..."Move.
20e20 74 68 65 20 70 6f 69 6e 74 20 43 4f 55 4e 54 20 6c 69 6e 65 73 20 61 6e 64 20 70 6c 61 63 65 20 the.point.COUNT.lines.and.place.
20e40 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6e 6f 64 65 2e 22 0a 20 at.the.beginning.of.the.node."..
20e60 20 28 7a 74 72 65 65 2d 73 63 72 6f 6c 6c 2d 74 6f 2d 6c 69 6e 65 0a 20 20 20 28 2b 20 63 6f 75 .(ztree-scroll-to-line....(+.cou
20e80 6e 74 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 29 29 0a 0a 3b 3b 3b 23 nt.(line-number-at-pos))))..;;;#
20ea0 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 7a 74 72 65 65 2d 76 69 65 77 2d 6f 6e 2d ##autoload.(defun.ztree-view-on-
20ec0 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 63 68 61 6e 67 65 64 20 28 29 0a window-configuration-changed.().
20ee0 20 20 22 48 6f 6f 6b 20 63 61 6c 6c 65 64 20 74 68 65 6e 20 77 69 6e 64 6f 77 20 63 6f 6e 66 69 .."Hook.called.then.window.confi
20f00 67 75 72 61 74 69 6f 6e 20 63 68 61 6e 67 65 64 20 74 6f 20 72 65 73 69 7a 65 20 62 75 66 66 65 guration.changed.to.resize.buffe
20f20 72 27 73 20 63 6f 6e 74 65 6e 74 73 22 0a 20 20 3b 3b 20 72 65 66 72 65 73 68 20 76 69 73 69 62 r's.contents"...;;.refresh.visib
20f40 6c 65 20 7a 74 72 65 65 20 62 75 66 66 65 72 73 0a 20 20 28 77 61 6c 6b 2d 77 69 6e 64 6f 77 73 le.ztree.buffers...(walk-windows
20f60 20 28 6c 61 6d 62 64 61 20 28 77 69 6e 29 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(lambda.(win)..................
20f80 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 77 69 6e 64 6f 77 2d 62 ..(with-current-buffer.(window-b
20fa0 75 66 66 65 72 20 77 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 uffer.win).....................(
20fc0 77 68 65 6e 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 7a 74 72 65 65 2d 6d 6f 64 65 when.(derived-mode-p.'ztree-mode
20fe0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 ).......................(when.(a
21000 6e 64 20 7a 74 72 65 65 2d 6c 61 73 74 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 0a 20 20 20 20 20 nd.ztree-last-window-width......
21020 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 2f 3d 20 ............................(/=.
21040 7a 74 72 65 65 2d 6c 61 73 74 2d 77 69 6e 64 6f 77 2d 77 69 64 74 68 20 28 77 69 6e 64 6f 77 2d ztree-last-window-width.(window-
21060 77 69 64 74 68 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 20 width)))........................
21080 20 28 7a 74 72 65 65 2d 72 65 66 72 65 73 68 2d 62 75 66 66 65 72 29 29 29 29 29 0a 20 20 20 20 .(ztree-refresh-buffer))))).....
210a0 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 27 76 69 73 69 62 6c 65 29 29 0a 0a 28 64 65 66 ............nil.'visible))..(def
210c0 75 6e 20 7a 74 72 65 65 2d 76 69 65 77 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 68 65 61 64 65 un.ztree-view.(buffer-name.heade
210e0 72 2d 66 75 6e 20 73 74 61 72 74 2d 6e 6f 64 65 20 69 6e 69 74 2d 66 75 6e 63 74 69 6f 6e 20 26 r-fun.start-node.init-function.&
21100 6f 70 74 69 6f 6e 61 6c 20 74 77 6f 2d 73 69 64 65 64 2d 70 29 0a 20 20 22 43 72 65 61 74 65 20 optional.two-sided-p)..."Create.
21120 61 20 7a 74 72 65 65 20 76 69 65 77 20 62 75 66 66 65 72 20 63 6f 6e 66 69 67 75 72 65 64 20 77 a.ztree.view.buffer.configured.w
21140 69 74 68 20 70 61 72 61 6d 65 74 65 72 73 20 67 69 76 65 6e 2e 0a 41 72 67 75 6d 65 6e 74 20 42 ith.parameters.given..Argument.B
21160 55 46 46 45 52 2d 4e 41 4d 45 20 4e 61 6d 65 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 63 72 UFFER-NAME.Name.of.the.buffer.cr
21180 65 61 74 65 64 2e 0a 41 72 67 75 6d 65 6e 74 20 48 45 41 44 45 52 2d 46 55 4e 20 46 75 6e 63 74 eated..Argument.HEADER-FUN.Funct
211a0 69 6f 6e 20 77 68 69 63 68 20 69 6e 73 65 72 74 73 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 74 ion.which.inserts.the.header.int
211c0 6f 20 74 68 65 20 62 75 66 66 65 72 0a 62 65 66 6f 72 65 20 64 72 61 77 69 6e 67 20 74 68 65 20 o.the.buffer.before.drawing.the.
211e0 74 72 65 65 2e 0a 41 72 67 75 6d 65 6e 74 20 53 54 41 52 54 2d 4e 4f 44 45 20 53 74 61 72 74 69 tree..Argument.START-NODE.Starti
21200 6e 67 20 6e 6f 64 65 20 2d 20 74 68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 74 72 65 65 2e 0a ng.node.-.the.root.of.the.tree..
21220 41 72 67 75 6d 65 6e 74 20 49 4e 49 54 2d 46 55 4e 43 54 49 4f 4e 20 46 75 6e 63 74 69 6f 6e 20 Argument.INIT-FUNCTION.Function.
21240 74 6f 20 63 61 6c 6c 20 6a 75 73 74 20 62 65 66 6f 72 65 20 72 65 66 72 65 73 68 69 6e 67 20 74 to.call.just.before.refreshing.t
21260 68 65 20 62 75 66 66 65 72 20 61 6e 64 0a 73 65 74 74 69 6e 67 20 61 6c 6c 20 76 61 72 69 61 62 he.buffer.and.setting.all.variab
21280 6c 65 73 20 61 6e 64 20 6d 6f 64 65 2e 20 43 6f 75 6c 64 20 62 65 20 6e 69 6c 2e 0a 49 74 20 63 les.and.mode..Could.be.nil..It.c
212a0 6f 75 6c 64 20 62 65 20 75 73 65 64 20 74 6f 20 73 65 74 20 75 70 20 61 20 6d 69 6e 6f 72 20 6d ould.be.used.to.set.up.a.minor.m
212c0 6f 64 65 20 6f 72 20 62 75 69 6c 64 20 61 20 74 72 65 65 2e 20 46 75 6e 63 74 69 6f 6e 20 73 68 ode.or.build.a.tree..Function.sh
212e0 6f 75 6c 64 20 6e 6f 74 0a 65 78 70 65 63 74 20 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 2e 20 45 ould.not.expect.any.arguments..E
21300 78 61 6d 70 6c 65 3a 20 23 27 7a 74 72 65 65 64 69 72 2d 6d 6f 64 65 0a 4f 70 74 69 6f 6e 61 6c xample:.#'ztreedir-mode.Optional
21320 20 61 72 67 75 6d 65 6e 74 20 54 57 4f 2d 53 49 44 45 44 2d 50 20 44 65 74 65 72 6d 69 6e 65 73 .argument.TWO-SIDED-P.Determines
21340 20 69 66 20 74 68 65 20 74 72 65 65 20 69 73 20 32 2d 73 69 64 65 64 20 28 6e 69 6c 20 62 79 20 .if.the.tree.is.2-sided.(nil.by.
21360 64 65 66 61 75 6c 74 29 22 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 default)"...(let.((buf.(get-buff
21380 65 72 2d 63 72 65 61 74 65 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 73 77 er-create.buffer-name))).....(sw
213a0 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 20 62 75 66 29 0a 20 20 20 20 28 7a 74 72 65 65 2d 6d itch-to-buffer.buf).....(ztree-m
213c0 6f 64 65 29 0a 20 20 20 20 3b 3b 20 63 6f 6e 66 69 67 75 72 65 20 7a 74 72 65 65 2d 76 69 65 77 ode).....;;.configure.ztree-view
213e0 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6e 6f 64 65 20 73 74 61 72 .....(setq.ztree-start-node.star
21400 74 2d 6e 6f 64 65 29 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 65 78 70 61 6e 64 65 64 t-node).....(setq.ztree-expanded
21420 2d 6e 6f 64 65 73 2d 6c 69 73 74 20 28 6c 69 73 74 20 7a 74 72 65 65 2d 73 74 61 72 74 2d 6e 6f -nodes-list.(list.ztree-start-no
21440 64 65 29 29 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 2d 74 72 65 65 2d 68 65 61 64 65 72 de)).....(setq.ztree-tree-header
21460 2d 66 75 6e 20 68 65 61 64 65 72 2d 66 75 6e 29 0a 20 20 20 20 28 73 65 74 71 20 7a 74 72 65 65 -fun.header-fun).....(setq.ztree
21480 2d 74 77 6f 2d 73 69 64 65 64 2d 70 20 74 77 6f 2d 73 69 64 65 64 2d 70 29 0a 20 20 20 20 28 77 -two-sided-p.two-sided-p).....(w
214a0 68 65 6e 20 69 6e 69 74 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c hen.init-function.......(funcall
214c0 20 69 6e 69 74 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 28 7a 74 72 65 65 2d 72 65 66 72 .init-function)).....(ztree-refr
214e0 65 73 68 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 77 69 6e 64 6f esh-buffer).....(add-hook.'windo
21500 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 63 68 61 6e 67 65 2d 68 6f 6f 6b 20 23 27 7a 74 w-configuration-change-hook.#'zt
21520 72 65 65 2d 76 69 65 77 2d 6f 6e 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e ree-view-on-window-configuration
21540 2d 63 68 61 6e 67 65 64 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 7a 74 72 65 65 2d 76 69 -changed)))...(provide.'ztree-vi
21560 65 77 29 0a 3b 3b 3b 20 7a 74 72 65 65 2d 76 69 65 77 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a ew).;;;.ztree-view.el.ends.here.
21580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
215a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
215c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
215e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21600 7a 74 72 65 65 2d 31 2e 30 2e 36 2f 7a 74 72 65 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 ztree-1.0.6/ztree.el............
21620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21660 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
21680 30 30 30 32 32 32 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 37 35 37 00 20 30 00 00 00 0002222.00000000000.012757..0...
216a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
216c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
216e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21700 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...................
21720 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...................
21740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21800 3b 3b 3b 20 7a 74 72 65 65 2e 65 6c 20 2d 2d 2d 20 54 65 78 74 20 6d 6f 64 65 20 64 69 72 65 63 ;;;.ztree.el.---.Text.mode.direc
21820 74 6f 72 79 20 74 72 65 65 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 tory.tree.-*-.lexical-binding:.t
21840 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 33 2d 32 30 32 ;.-*-..;;.Copyright.(C).2013-202
21860 31 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 1..Free.Software.Foundation,.Inc
21880 2e 0a 3b 3b 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 ..;;.;;.Author:.Alexey.Veretenni
218a0 6b 6f 76 20 3c 61 6c 65 78 65 79 2e 76 65 72 65 74 65 6e 6e 69 6b 6f 76 40 67 6d 61 69 6c 2e 63 kov.<alexey.veretennikov@gmail.c
218c0 6f 6d 3e 0a 3b 3b 20 43 72 65 61 74 65 64 3a 20 32 30 31 33 2d 31 31 2d 31 31 0a 3b 3b 20 56 65 om>.;;.Created:.2013-11-11.;;.Ve
218e0 72 73 69 6f 6e 3a 20 31 2e 30 2e 36 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 rsion:.1.0.6.;;.Package-Requires
21900 3a 20 28 28 63 6c 2d 6c 69 62 20 22 30 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 66 69 :.((cl-lib."0")).;;.Keywords:.fi
21920 6c 65 73 20 74 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 les.tools.;;.URL:.https://github
21940 2e 63 6f 6d 2f 66 6f 75 72 69 65 72 2f 7a 74 72 65 65 0a 3b 3b 20 43 6f 6d 70 61 74 69 62 69 6c .com/fourier/ztree.;;.Compatibil
21960 69 74 79 3a 20 47 4e 55 20 45 6d 61 63 73 20 32 34 2e 78 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 66 ity:.GNU.Emacs.24.x.;;.;;.This.f
21980 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 ile.is.part.of.GNU.Emacs..;;.;;.
219a0 47 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 GNU.Emacs.is.free.software:.you.
219c0 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 can.redistribute.it.and/or.modif
219e0 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 y.;;.it.under.the.terms.of.the.G
21a00 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 20 61 73 20 70 75 62 NU.General.Public.License.as.pub
21a20 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 lished.by.;;.the.Free.Software.F
21a40 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 oundation,.either.version.3.of.t
21a60 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f he.License,.or.;;.(at.your.optio
21a80 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 47 4e 55 20 n).any.later.version..;;.;;.GNU.
21aa0 45 6d 61 63 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 Emacs.is.distributed.in.the.hope
21ac0 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 .that.it.will.be.useful,.;;.but.
21ae0 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 WITHOUT.ANY.WARRANTY;.without.ev
21b00 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 en.the.implied.warranty.of.;;.ME
21b20 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 RCHANTABILITY.or.FITNESS.FOR.A.P
21b40 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 ARTICULAR.PURPOSE...See.the.;;.G
21b60 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 20 66 6f 72 20 6d 6f NU.General.Public.License.for.mo
21b80 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 re.details..;;.;;.You.should.hav
21ba0 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e e.received.a.copy.of.the.GNU.Gen
21bc0 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 eral.Public.License.;;.along.wit
21be0 68 20 47 4e 55 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a h.GNU.Emacs...If.not,.see.<http:
21c00 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 3b 3b 0a 3b 3b 3b //www.gnu.org/licenses/>..;;.;;;
21c20 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 .Commentary:.;;.;;.;;;.Code:..(r
21c40 65 71 75 69 72 65 20 27 7a 74 72 65 65 2d 64 69 72 29 0a 28 72 65 71 75 69 72 65 20 27 7a 74 72 equire.'ztree-dir).(require.'ztr
21c60 65 65 2d 64 69 66 66 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 7a 74 72 65 65 29 0a 3b 3b 3b 20 7a ee-diff)..(provide.'ztree).;;;.z
21c80 74 72 65 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 tree.el.ends.here...............
21ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
222a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
222c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
222e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
223a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
223c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
223e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
224a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
224c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
224e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
226a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
226c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
226e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
227a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
227c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
227e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
228a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
228c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
228e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
229a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
229c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
229e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................