(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED "17-Jun-2023 15:22:40" ("compiled on " {WMEDLEY}COMPARESOURCES.;131) "17-Jun-2023 13:22:53" brecompiled exprs%: CSBROWSER in "LFG 17-Jun-2023 ..." dated "17-Jun-2023 13:48:36") (FILECREATED "17-Jun-2023 15:22:40" {WMEDLEY}COMPARESOURCES.;131 39663 :EDIT-BY rmk :CHANGES-TO (FNS CSBROWSER \CS.COMPARE.MASTERS) :PREVIOUS-DATE "22-May-2022 18:46:01" {WMEDLEY}COMPARESOURCES.;128) COMPARESOURCES :D8 (P 24 *PRINT-BASE* P 23 *READ-BASE* P 22 *READTABLE* P 21 *PACKAGE* P 16 *REMOVE-INTERLISP-COMMENTS* P 11 OBJECTS P 10 DATECOL P 9 DECLAREY P 8 DECLAREX P 7 ENVY P 6 ENVX P 5 BODYY P 4 BODYX P 3 DIFFERENCES P 2 CONTEXTSTREAM P 1 COMPARESTREAM P 0 INSERTOBJECTS I 7 LABELY I 6 LABELX I 5 IGNORECOMMENTS I 4 LISTSTREAM I 3 DW? I 2 EXAMINE I 1 FILEY I 0 FILEX) BD DdH"nI nJ @ @ @i bA A Ai b@ _OL \A _O_M ]EiL M ]F@b GAbll F G _dOO_oJ FJ OjJ oJ @g J lhJ oJ GJ OjJ oJ Ag J J J L1O"O$_LO \M1O"O$_MO ]N O_OOOLMC O O LM1O"O$ \1O"J HJ jqJ O_`J oJ J J oJ J dg_(O&O(h_&_$O"_"O(&_&dg_(O&O(h_&_$O"_"O(&_&dL h_(O&O(h_&_$O"_"O(&_&_$M _&O$_(O$O&O&O$gg _&gg _$O&`J oJ gO(` o J oJ J O$ O& C O"_"uO _DO K g(941 REVERSE 934 OBJ.ADDMANYTOW 923 DREVERSE 907 \CS.COMPARE.MASTERS 901 REVERSE 894 REVERSE 886 TERPRI 879 PRIN1 867 PRIN1 860 \APPEND2 850 CL:SET-DIFFERENCE 832 PRIN1 820 TERPRI 807 CL:SET-DIFFERENCE 789 CL:SET-DIFFERENCE 754 SASSOC 708 SASSOC 616 TERPRI 610 PRIN1 599 PRIN1 592 TERPRI 586 PRIN1 575 PRIN1 561 CSOBJ.CREATE 556 CL:GET-OUTPUT-STREAM-STRING 544 GETFILEPTR 532 TERPRI 512 \APPEND2 489 \CS.SORT.DECLARES 481 \CS.SORT.DECLARES 473 \CS.COMPARE.MASTERS 441 MAKE-READER-ENVIRONMENT 428 CL:SET-DIFFERENCE 401 CL:SET-DIFFERENCE 375 TERPRI 368 TERPRI 361 PRIN1 355 GETFILEINFO 343 PRIN1 331 TAB 321 PRIN1 312 PRIN1 300 TAB 290 PRIN1 284 GETFILEINFO 272 PRIN1 260 TAB 250 PRIN1 242 PRIN1 217 NCHARS 210 NCHARS 184 REMOVE-COMMENTS 177 REMOVE-COMMENTS 163 \CS.FILTER.GARBAGE 146 \MVLIST 141 READFILE 134 \CS.FILTER.GARBAGE 119 \MVLIST 114 READFILE 100 FINDFILE 92 INFILEP 84 STREAMP 70 FINDFILE 62 INFILEP 54 STREAMP 47 LINELENGTH 37 LINELENGTH 27 MAKE-FILL-POINTER-OUTPUT-STREAM 21 MAKE-FILL-POINTER-OUTPUT-STREAM 8 OBJWINDOWP) (948 SAME 845 DEFAULT.DECLARE.TAGS 838 DECLARE%: 802 EQUALALL 797 :TEST 784 EQUALALL 779 :TEST 666 DECLARE%: 625 DECLARE%: 446 READER-ENVIRONMENT 350 CREATIONDATE 279 CREATIONDATE) ( 873 " forms------" 855 (--) 826 "------" 604 " not found" 580 " not found" 337 "dated " 306 " and " 266 "dated " 236 "Comparing ") \CS.COMPARE.MASTERS :D8 (P 31 Y P 30 X P 21 DEFFER P 19 Y P 14 X P 9 COMMENTY P 8 COMMENTX P 7 DEFFERS P 6 TYPE P 4 TMP P 3 DIFS P 2 PRED P 1 THING1 P 0 THING2 I 2 DW? I 1 BODY2 I 0 BODY1 F 32 CONTEXTSTREAM F 33 DIFFERENCES F 34 COMPARESTREAM F 35 COMMENTFLG F 36 FILEPKGTYPES) o Pg@ bgA b@ bA bg@Y)gAXIH I@ bHA bWH!M`MA@dAgg bgg b@dW@ oW@ W@ jd @AOObAAOO bOjOjJoOW@ oW@ oOW@ oW@ W@ W@ @A@AWD @Ahg ^d3@Ng'_O( M]_*@1O,O.YA1O40O6XOdO*_2O0O2h_0_.O,_,O2&_0dO*_:O8O:h_8_6O4_4O:&_8@Igg bAHgg bIHNg NoO* hO*g'N [NWB\ NKWBcBK O(_(^@AOOYAAO4OXW_kJO_OOh__O_O&__kJO_OOh__O_O&_@Igg bAHgg bIHN N NNgN^ [NWB\ NKWBcBK M]_dWFOk__OOh__O_EO&__&dWFOk__$O"O$h_"_ O_%O$&_"oWD WD @'dOWDll hO>ihg gWBgghWBcB(1099 \CS.EXAMINE 1082 LVLPRINT 1060 TERPRI 1052 PRIN1 1030 \CS.EXAMINE 1013 LVLPRINT 991 TERPRI 983 PRIN1 864 \NCONC2 839 \CS.COMPARE.TYPES 814 MKSTRING 794 CL:SET-DIFFERENCE 774 CL:SET-DIFFERENCE 626 \NCONC2 601 \CS.COMPARE.TYPES 581 CONCAT 566 CL:DOCUMENTATION 550 CL:SET-DIFFERENCE 530 CL:SET-DIFFERENCE 357 \CS.EXAMINE 343 COMPARELISTS 323 TERPRI 315 TERPRI 307 PRIN1 294 PRINTNUM 279 PRIN1 266 PRINTNUM 200 TERPRI 192 PRIN1 179 TERPRI 161 CL:SET-DIFFERENCE 143 CL:SET-DIFFERENCE 90 REMOVE 80 REMOVE 71 \CS.COMPARE.DEFINE-FILE-INFO 42 \CS.FIXFNS 34 \CS.FIXFNS 26 CL:REMOVE-IF 13 CL:REMOVE-IF) (1124 -- 1119 Other 1109 Other 1093 Expression 1024 Expression 830 CADR 789 EQUALALL 784 :TEST 769 EQUALALL 764 :TEST 593 :DEFINITION-NAME 561 DEFINE-TYPES 545 EQUALALL 540 :TEST 525 EQUALALL 520 :TEST 379 :DEFINED-BY 352 Expression 156 EQUALALL 151 :TEST 138 EQUALALL 133 :TEST 112 COMPARESOURCETYPES 59 DEFINE-FILE-INFO 49 DEFINE-FILE-INFO 20 EDITDATE? 7 EDITDATE?) ( 1045 "These are not on File 1:" 976 "These are not on File 2:" 574 " defined by " 300 " comments." 285 (FIX 1) 272 " comments -> " 257 (FIX 1) 185 "---Expressions:") \CS.COMPARE.TYPES :D8 (P 7 Y P 5 A0153 P 4 TAIL P 3 NAME P 2 RESULT P 1 Y P 0 X I 5 TYPE I 4 IDFN I 3 COMPAREFN I 2 TITLE I 1 YTHING I 0 XTHING F 8 COMPARESTREAM F 9 CONTEXTSTREAM F 10 BOLDFONT F 11 DEFAULTFONT) @@ A@Ad@gg bgg bAB=W oW BW oW W W @dDLXkMANNhY^WW KW WW oW W W HhiKE o_kDKOiN^WW KW oW WW W CHIWlCHIW HIhKE IAhLhKJZ A@gg ZdOkDWW KW WW oW W W OhiKE KJZJ(452 \CS.EXAMINE 439 TERPRI 431 TERPRI 423 PRIN1 410 CHANGEFONT 400 PRIN2 391 CHANGEFONT 369 CL:SET-DIFFERENCE 328 \CS.EXAMINE 316 COMPARELISTS 295 TERPRI 287 CHANGEFONT 277 PRIN1 264 PRIN2 255 CHANGEFONT 223 \CS.EXAMINE 211 TERPRI 203 TERPRI 195 PRIN1 182 CHANGEFONT 172 PRIN2 163 CHANGEFONT 120 TERPRI 112 TERPRI 104 PRIN1 91 PRIN1 82 PRIN1 69 TERPRI 49 CL:SET-DIFFERENCE 31 CL:SET-DIFFERENCE) (364 EQUALALL 359 :TEST 44 EQUALALL 39 :TEST 26 EQUALALL 21 :TEST) ( 416 " is not on File 1" 270 ":" 188 " is not on File 2" 97 ":" 75 "---") \CS.EXAMINE :D8 (P 0 STRING I 4 TYPE I 3 NAME I 2 ONLYONE I 1 Y I 0 X F 1 EXAMINE F 2 OBJECTS F 3 CONTEXTSTREAM F 4 COMPARESTREAM F 5 INSERTOBJECTS F 6 LABEL1 F 7 LABEL2) +CobUS j2S Xm l Hkm oXH RcT jOT Xdm l !Hm l Hkm oXHCD@AVWhB Rch@A2B0Qi!QdiQQgQgQ @A Qdi!diQQgQgQQgQgQ@ACD @Ah (296 EDITE 285 EXAMINEDEFS 219 EDITE 157 CSOBJ.CREATE 127 SUBSTRING 113 NTHCHARCODE 100 NTHCHARCODE 91 CL:GET-OUTPUT-STREAM-STRING 81 GETFILEPTR 70 CSOBJ.CREATE 55 SUBSTRING 41 NTHCHARCODE 33 CL:GET-OUTPUT-STREAM-STRING 23 GETFILEPTR) (273 2WINDOWS 262 2WINDOWS 252 OLD 241 OLD 206 NEW 195 NEW) ( 134 "" 62 "" 6 "from File") \CS.FIXFNS :D8 (P 11 FN P 2 FNS P 1 DEFINEQS P 0 NOSPELLFLG I 1 DW? I 0 BODY) iA@1MNY@I b0Icdg_OOh_^M]O&_d0 L"dgKh_O Oh_O&_O]NM_^OZA%d ^Md Oi J@ (178 \APPEND2 166 DWIMIFY 144 LAST 21 CL:SET-DIFFERENCE) (83 DEFINEQ 37 DEFINEQ) () \CS.SORT.DECLARES :D8 (P 1 DEC P 0 RESULT I 0 DECLS)  @dY` H(17 \CS.SORT.DECLARE1) (12 DEFAULT.DECLARE.TAGS) () \CS.SORT.DECLARE1 :D8 (P 4 COMPLEMENT P 3 TAG P 2 CURRENT P 1 TAIL I 1 TAGLST I 0 DEC F 5 RESULT) 3@AHYh[ddggggKdgg[A gK AKIYhKdggkgg]KdggLgg>Kdgg-ggKdgggg\AKLA AKh bhZ5gKA $JAU ZUAhZh c JKJI(290 \NCONC2 275 SASSOC 263 \CS.SORT.DECLARE1 241 \APPEND2 231 SUBST 85 STRPOS 70 MEMB) (254 DECLARE%: 219 FIRST 211 NOTFIRST 205 NOTFIRST 197 FIRST 188 EVAL@LOAD 181 DONTEVAL@LOAD 174 DONTEVAL@LOAD 166 EVAL@LOAD 157 EVAL@COMPILE 150 DONTEVAL@COMPILE 143 DONTEVAL@COMPILE 135 EVAL@COMPILE 126 COPY 119 DONTCOPY 112 DONTCOPY 104 COPY 79 WHEN 63 COPY 55 DOCOPY 47 EVAL@COMPILE 40 DOEVAL@COMPILE 33 EVAL@LOAD 25 DOEVAL@LOAD) () \CS.FILTER.GARBAGE :D8 (L (0 FILECONTENTS)) _@AHI\gALdg-dg"dgLgLLJ KhZHXK&NIL (67 FILEMAP 55 COPYRIGHT 39 DONTCOPY 28 DECLARE%: 17 FILECREATED) () \CS.ISFNFORM :D8 (L (0 X)) @gNIL (7 DEFINEQ) () \CS.COMPARE.FNS :D8 (I 2 STREAM I 1 DQY I 0 DQX) @AB (15 COMPARELISTS) NIL () \CS.FNSID :D8 (L (0 DQX)) @NIL NIL () \CS.ISVARFORM :D8 (L (0 X)) @dgdgdgiNIL (24 RPAQ? 16 RPAQQ 7 RPAQ) () \CS.COMPARE.VARS :D8 (P 2 YVAL P 1 XVAL I 2 STREAM I 1 Y I 0 X) @dAAB dgHddi3 gHhAdgHddi3 gHhIJH@gggB oB AgggB B IJB (191 COMPARELISTS 182 TERPRI 176 PRIN1 150 PRIN1 139 PRIN1 19 COMPARELISTS) (170 VARS 164 INITVARS 157 RPAQ? 133 VARS 127 INITVARS 120 RPAQ? 96 QUOTE 70 RPAQQ 53 QUOTE 27 RPAQQ) ( 144 " -> ") \CS.ISMACROFORM :D8 (L (0 X)) @dgig @`NIL (28 MACROPROPS 16 PUTPROPS 7 DEFMACRO) () \CS.ISRECFORM :D8 (L (0 X)) @` @gNIL (16 /DECLAREDATATYPE 6 CLISPRECORDTYPES) () \CS.REC.NAME :D8 (L (0 FORM)) @dgdgNIL (18 QUOTE 7 /DECLAREDATATYPE) () \CS.ISCOURIERFORM :D8 (L (0 X)) @gNIL (6 COURIERPROGRAM) () \CS.ISTEMPLATEFORM :D8 (L (0 X)) @gNIL (6 SETTEMPLATE) () \CS.COMPARE.TEMPLATES :D8 (I 2 STREAM I 1 Y I 0 X) B@A1@dg$Ag@AB @AB (63 COMPARELISTS 54 COMPARELISTS) (33 QUOTE 19 QUOTE) () \CS.ISPROPFORM :D8 (L (0 X)) @g @hNIL (6 PUTPROPS) () \CS.PROP.NAME :D8 (L (0 X)) @@hNIL NIL () \CS.COMPARE.PROPS :D8 (I 2 STREAM I 1 Y I 0 X) @AB (15 COMPARELISTS) NIL () \CS.ISADDVARFORM :D8 (L (0 X)) @gNIL (6 ADDTOVAR) () \CS.COMPARE.ADDVARS :D8 (I 2 STREAM I 1 Y I 0 X) @AB (11 COMPARELISTS) NIL () \CS.ISFPKGCOMFORM :D8 (L (0 X)) @g @oNIL (6 PUTDEF) ( 18 (QUOTE FILEPKGCOMS)) \CS.COMPARE.FPKGCOMS :D8 (I 2 STREAM I 1 Y I 0 X) @AB (19 COMPARELISTS) NIL () \CS.COMPARE.DEFINE-FILE-INFO :D8 (I 1 DFI2 I 0 DFI1 F 0 *DEFAULT-EXTERNALFORMAT*) Jg@'gA'9g@'gA'(g@'gA'g@'PgA'PNIL (65 :FORMAT 55 :FORMAT 45 :BASE 38 :BASE 28 :PACKAGE 21 :PACKAGE 11 :READTABLE 4 :READTABLE) () CSOBJ.CREATE :D8 (P 0 OBJ I 2 ONLYONE I 1 COMPAREDATA I 0 STRING F 1 COMPARESOURCES-IMAGEFNS) %@Q HgA HgB H(33 IMAGEOBJPROP 21 IMAGEOBJPROP 6 IMAGEOBJCREATE) (27 ONLYONE 15 COMPAREDATA) () CSOBJ.DISPLAYFN :D8 (P 3 C P 2 STRING P 1 FONTARRAY P 0 I I 1 WINDOW I 0 OBJ F 4 DEFAULTFONT) `TA k@g JH [dl A )dhlIJHkX A KA HkԸ(87 PRINTCCODE 79 DSPFONT 73 ELT 68 NTHCHARCODE 46 TERPRI 33 NTHCHARCODE 23 IMAGEOBJPROP 12 FONTMAPARRAY 6 DSPFONT) (18 OBJECTDATUM) () CSOBJ.IMAGEBOXFN :D8 (P 7 C P 6 FONTARRAY P 5 MAXLINELENGTH P 4 LINELENGTH P 3 HEIGHT P 2 FONT P 1 STRING P 0 I I 3 RIGHTMARGIN I 2 CURRENTX I 1 IMAGESTREAM I 0 OBJ F 8 DEFAULTFONT) Ag bk@g WhddA jddIH _dl KJ ԻLMLjILML]MKdJ jhOlNIHkX hddA LOJ ԼHkԸ(151 CHARWIDTH 140 FONTCREATE 130 ELT 125 NTHCHARCODE 99 FONTHEIGHT 70 FONTHEIGHT 54 NTHCHARCODE 44 FONTMAPARRAY 36 FONTCREATE 24 IMAGEOBJPROP 10 GETSTREAM) (19 OBJECTDATUM 5 OUTPUT) () CSOBJ.BUTTONEVENTINFN :D8 (P 11 EWINDOW P 10 RELPOS P 9 OBJREGION P 8 TITLE2 P 7 TITLE1 P 6 DEF2 P 5 DEF1 P 4 TYPE P 3 NAME P 0 COMPAREDATA I 1 WINDOW I 0 OBJ) 8 @g !H$`lj`lYjI  HHXHXHXHXHXA@  l`OOA ZJm AoAo  A @g KMNgnXldMN lnMgggOhi h KLMNOOO _dA OA Oh(305 MOVEWITH 297 CLOSEWITH 288 EXAMINEDEFS 271 SEDIT:GET-WINDOW 266 SEDIT:SEDIT 258 RELCREATEREGION 222 COUNT 197 IMAGEOBJPROP 186 CLOSEWITH.DOIT 177 RELCREATEPOSITION 157 \CURSORPOSITION 139 WINDOWREGION 111 OBJ.FIND.REGION 77 \FZEROP 69 \BACKGROUND 45 GETMOUSESTATE 25 GETMOUSESTATE 10 IMAGEOBJPROP) (248 TOP 243 LEFT 237 RIGHT 208 :REGION 192 ONLYONE 121 LASTMOUSEX 51 LASTMOUSEBUTTONS 31 LASTMOUSEBUTTONS 5 COMPAREDATA) ( 171 (0 -2) 164 (0.5)) CSOBJ.COPYBUTTONEVENTINFN :D8 (I 2 REGION I 1 WINDOW I 0 OBJ) !@g @g  (30 COPYINSERT 24 IMAGEOBJPROP 10 IMAGEOBJPROP) (19 COMPAREDATA 5 COMPAREDATA) () CSBROWSER :D8 (P 0 WINDOW I 7 TITLE I 6 IGNORECOMMENTS I 5 REGION I 4 LABEL2 I 3 LABEL1 I 2 DW? I 1 FILE2 I 0 FILE1 F 1 DEFAULTFONT) %@ #@ @h` o@ bA #A Ah` oA b@ @o Cghghg@ bDghghgA bA @o GoCoD bgEGhiQ Hgi Hi Hgh @AoBHFCD H H(289 OPENW 283 COMPARESOURCES 265 PUTWINDOWPROP 253 GETPROMPTWINDOW 246 PUTWINDOWPROP 231 OBJ.CREATEW 204 CONCAT 182 ERROR 170 LISPSOURCEFILEP 161 PACKFILENAME 131 PACKFILENAME 103 ERROR 91 LISPSOURCEFILEP 83 ERROR 70 FINDFILE 56 INFILEP 48 STREAMP 40 ERROR 27 FINDFILE 13 INFILEP 5 STREAMP) (259 UNDERSCONTRUCTION 240 UNDERSCONTRUCTION 223 FONTDESCRIPTOR 212 VERTICAL 154 BODY 148 DIRECTORY 142 HOST 124 BODY 118 DIRECTORY 112 HOST 65 DIRECTORIES 22 DIRECTORIES) ( 272 (T 2WINDOWS) 198 " and " 192 "COMPARESOURCES of " 177 " is not a Medley source file" 98 " is not a Medley source file" 77 "FILE NOT FOUND" 34 "FILE NOT FOUND") (PRETTYCOMPRINT COMPARESOURCESCOMS) (RPAQQ COMPARESOURCESCOMS ((FNS COMPARESOURCES \CS.COMPARE.MASTERS \CS.COMPARE.TYPES \CS.EXAMINE \CS.FIXFNS \CS.SORT.DECLARES \CS.SORT.DECLARE1 \CS.FILTER.GARBAGE) (FNS \CS.ISFNFORM \CS.COMPARE.FNS \CS.FNSID \CS.ISVARFORM \CS.COMPARE.VARS \CS.ISMACROFORM \CS.ISRECFORM \CS.REC.NAME \CS.ISCOURIERFORM \CS.ISTEMPLATEFORM \CS.COMPARE.TEMPLATES \CS.ISPROPFORM \CS.PROP.NAME \CS.COMPARE.PROPS \CS.ISADDVARFORM \CS.COMPARE.ADDVARS \CS.ISFPKGCOMFORM \CS.COMPARE.FPKGCOMS \CS.COMPARE.DEFINE-FILE-INFO) (COMS (FNS CSOBJ.CREATE CSOBJ.DISPLAYFN CSOBJ.IMAGEBOXFN CSOBJ.BUTTONEVENTINFN CSOBJ.COPYBUTTONEVENTINFN) (INITVARS (COMPARESOURCES-IMAGEFNS (IMAGEFNSCREATE ( QUOTE CSOBJ.DISPLAYFN) (QUOTE CSOBJ.IMAGEBOXFN) NIL NIL NIL (QUOTE CSOBJ.BUTTONEVENTINFN) (QUOTE CSOBJ.COPYBUTTONEVENTINFN))))) (VARS COMPARESOURCETYPES DEFAULT.DECLARE.TAGS) (COMS (FNS CSBROWSER) ( FILES (SYSLOAD) OBJECTWINDOW EXAMINEDEFS REGIONMANAGER)) (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS CSTYPE) (GLOBALVARS COMPARESOURCETYPES CLISPRECORDTYPES MACROPROPS DEFAULT.DECLARE.TAGS)))) (RPAQ? COMPARESOURCES-IMAGEFNS (IMAGEFNSCREATE (QUOTE CSOBJ.DISPLAYFN) (QUOTE CSOBJ.IMAGEBOXFN) NIL NIL NIL (QUOTE CSOBJ.BUTTONEVENTINFN) (QUOTE CSOBJ.COPYBUTTONEVENTINFN))) (RPAQQ COMPARESOURCETYPES ((FNS \CS.ISFNFORM \CS.COMPARE.FNS \CS.FNSID "FNS defined by DEFINEQ") (VARS \CS.ISVARFORM \CS.COMPARE.VARS) (MACROS \CS.ISMACROFORM) (RECORDS \CS.ISRECFORM NIL \CS.REC.NAME) ( PROPS \CS.ISPROPFORM \CS.COMPARE.PROPS \CS.PROP.NAME "Properties") (ADDVARS \CS.ISADDVARFORM \CS.COMPARE.ADDVARS CADR "Additions to lists") (TEMPLATES \CS.ISTEMPLATEFORM \CS.COMPARE.TEMPLATES CADADR) (COURIERPROGRAMS \CS.ISCOURIERFORM) (FILEPKGCOMS \CS.ISFPKGCOMFORM \CS.COMPARE.FPKGCOMS CADADR ))) (RPAQQ DEFAULT.DECLARE.TAGS (EVAL@LOAD DONTEVAL@COMPILE COPY NOTFIRST)) (FILESLOAD (SYSLOAD) OBJECTWINDOW EXAMINEDEFS REGIONMANAGER) (PUTPROPS COMPARESOURCES COPYRIGHT ("Xerox Corporation" 1985 1986 1987 1988 2018 2020 2021)) NIL