;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\302\303\304\305\306\307%\207" [require chess-pos custom-declare-group chess-ply nil "Routines for manipulating chess plies." :group chess] 6) #@12 (fn PLY) (defalias 'chess-ply-p #[257 "\211:\205\211@\300!\205\211G\301U\262\207" [vectorp 75] 4 (#$ . 255)]) (byte-code "\300\301\302\303#\304\301\305\306#\210\304\307\310\311#\207" [function-put chess-ply-p speed -1 put byte-optimizer byte-compile-inline-expand chess-ply cl-deftype-handler #[0 "\300\207" [(satisfies chess-ply-p)] 1]] 5) #@58 Returns the base position associated with PLY. (fn PLY) (defalias 'chess-ply-pos #[257 "\211@\207" [] 2 (#$ . 610)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put chess-ply-pos speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@50 Set the base position of PLY. (fn PLY POSITION) (defalias 'chess-ply-set-pos #[514 "\240\207" [] 4 (#$ . 873)]) (byte-code "\300\301\302\303#\304\301\305\306#\210\300\307\310\311#\300\207" [function-put chess-ply-set-pos speed -1 put byte-optimizer byte-compile-inline-expand chess-ply-pos gv-expander #[385 "\300\301\302$\207" [gv--defsetter chess-ply-pos #[385 "\300\301C\"B\207" [chess-ply-set-pos append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 5) #@12 (fn PLY) (defalias 'chess-ply-changes #[257 "\211A\207" [] 2 (#$ . 1357)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put chess-ply-changes speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@20 (fn PLY CHANGES) (defalias 'chess-ply-set-changes #[514 "\241\207" [] 4 (#$ . 1583)]) (byte-code "\300\301\302\303#\304\301\305\306#\210\300\307\310\311#\300\207" [function-put chess-ply-set-changes speed -1 put byte-optimizer byte-compile-inline-expand chess-ply-changes gv-expander #[385 "\300\301\302$\207" [gv--defsetter chess-ply-changes #[385 "\300\301C\"B\207" [chess-ply-set-changes append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 5) #@83 Return non-nil if PLY contains at least one of KEYWORDS. (fn PLY &rest KEYWORDS) (defalias 'chess-ply-any-keyword #[385 "\3002$\211\211\205!\211@\211\211A\262>\203\301\300\"\210A\266\202\202\2620\207" [found throw] 7 (#$ . 2058)]) (byte-code "\300\301\302\303#\300\207" [function-put chess-ply-any-keyword side-effect-free t] 4) #@251 Determine if PLY has KEYWORD. If KEYWORD can be found in the changes of PLY, the value directly following it is returned (as if it was part of a property list). If KEYWORD is the last element of the changes of ply, `t' is returned. (fn PLY KEYWORD) (defalias 'chess-ply-keyword #[514 "\211\211A\262>\211\205\211A\203\211A@\207\300\207" [t] 5 (#$ . 2406)]) (byte-code "\300\301\302\303#\300\207" [function-put chess-ply-keyword side-effect-free t] 4) #@36 (fn PLY KEYWORD &optional VALUE) (defalias 'chess-ply-set-keyword #[770 "\211A\262>\211\203\203'\211A\240\210\202'\203#D\202%C\244\210\207" [] 8 (#$ . 2869)]) (byte-code "\300\301\302\303#\300\207" [function-put chess-ply-keyword gv-expander #[385 "\300\301\302$\207" [gv--defsetter chess-ply-keyword #[385 "\300\301C\"B\207" [chess-ply-set-keyword append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@57 Returns the source square index value of PLY. (fn PLY) (defalias 'chess-ply-source #[257 "\211\211A\262\211<\205\211@9?\205\211@\207" [] 3 (#$ . 3318)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put chess-ply-source speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@57 Returns the target square index value of PLY. (fn PLY) (defalias 'chess-ply-target #[257 "\211\211A\262\211<\205\211@9?\205\211A@\207" [] 3 (#$ . 3625)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put chess-ply-target speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@64 Return the position that results from executing PLY. (fn PLY) (defalias 'chess-ply-next-pos #[257 "\300\301\"\206\211\302\303\211@\262\211\304!\205\211G\305U\262\204&\306\307\310\311E\"\210\312!\211\313\211\304!\2057\211G\305U\262\204D\306\307\310\311E\"\210\211\314H\262!\304!\205U\211G\305U\262\204b\306\307\310\311E\"\210\211<\204o\306\307\315\316E\"\210\314I\266\262\211A\262#\317\"\210\320\301#\262\207" [chess-ply-keyword :next-pos apply chess-pos-move vectorp 75 signal wrong-type-argument chess-pos position vconcat copy-alist 71 list annotations chess-pos-set-preceding-ply chess-ply-set-keyword] 13 (#$ . 3933)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put chess-ply-next-pos speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@115 Create castling changes; this function supports Fischer Random castling. (fn POSITION &optional LONG KING-INDEX) (defalias 'chess-ply-castling-changes #[769 "\211\304!\205\f\211G\305U\262\204\306\307\310\311E\"\210\211\312H\262\206\376\304!\205/\211G\305U\262\204<\306\307\310\311E\"\210\211\313>\204J\306\307\314\315E\"\210\203S\316\202T\317H\206\374\203c\305\202d\320\304!\205o\211G\305U\262\204|\306\307\310\311E\"\210\211\321>\204\212\306\307\322\323E\"\210\324\325\326\211W\203\253\211\327#\203\243\211B\262\210\211T\262\202\215\266\266\202\304!\205\272\211G\305U\262\204\307\306\307\310\311E\"\210\330>\204\325\306\307\331\315E\"\210\211\250\203\346\211\326Y\203\346\211\332X\204\356\306\307\333\334E\"\210\203\367\316\202\370\317I\266\203\266\202\335\203\203\f\336\202\305\202\203\337\202\320\"\203\"\202# \324\205>\250\203;\326Y\203;\332X\204C\306\307\340\334E\"\210\211\250\203T\211\341Y\203T\211\342X\204\\\306\307\343\344E\"\210\n H\\H\266\202\262\211\203\363\211U\204\363\327\345#\203\363\203\244\211\211\250\203\221\211\326Y\203\221\211\332X\204\231\306\307\346\334E\"\210\347\350\"\262\351W\204\261\352C$\203\363\211\250\203\304\326Y\203\304\332X\204\314\306\307\340\334E\"\210\211\250\203\335\211\341Y\203\335\211\342X\204\345\306\307\343\344E\"\210\n H\\H\266\202\262\202g\211\232\205>\203 \203\353\202\354\202\203\351\202\355\203( \203$\356\2022\357\2022 \2031\360\2022\361\n\203;\362\202<\363\257\207" [chess-direction-west chess-direction-east chess-pos-10x12-index chess-pos-10x12-address vectorp 75 signal wrong-type-argument chess-pos position 70 #1=(nil t) (member . #1#) color 72 73 107 #2=(t nil 32 75 81 78 66 82 80 107 113 110 98 114 112) (member . #2#) piece-or-color nil 64 0 #[771 "\300!\205 \211G\301U\262\204\302\303\304\305E\"\210\250\203)\306Y\203)\307X\2041\302\303\310\311E\"\210\211\312>\204?\302\303\313\314E\"\210\300!\205L\211G\301U\262\204Y\302\303\304\305E\"\210\211\250\203j\211\306Y\203j\211\307X\204r\302\303\315\311E\"\210H\266\202\211\316U\203\206\247\205\227\211U\207\317\267\202\224\211\320W\207\211\320V\207\211U\207" [vectorp 75 signal wrong-type-argument chess-pos position 0 63 (integer 0 63) index #3=(t nil 32 75 81 78 66 82 80 107 113 110 98 114 112) (member . #3#) piece-or-color (integer 0 63) 32 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (t 140 nil 144)) 97] 10 "Return non-nil if at POSITION/INDEX there is the given PIECE-OR-COLOR.\nIf PIECE-OR-COLOR is t for white or nil for black, any piece of that\ncolor will do.\n\n(fn POSITION INDEX PIECE-OR-COLOR)"] #4=(nil t) (member . #4#) 63 (integer 0 63) index chess-pos-can-castle 81 113 (integer 0 63) -21 21 (integer -21 21) direction 32 (integer 0 63) mod 8 2 chess-pos-legal-candidates 58 62 6 59 61 3 5 :long-castle :castle] 18 (#$ . 4745)]) (chess-message-catalog 'english '((ambiguous-promotion . "Promotion without :promote keyword"))) (defvar chess-ply-checking-mate nil) #@17 (fn POSITION) (defalias 'chess-ply-create* #[257 "\211C\207" [] 2 (#$ . 7904)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put chess-ply-create* speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@401 Create a ply from the given POSITION by applying the supplied CHANGES. This function will guarantee the resulting ply is legal, and will also annotate the ply with :check or other modifiers as necessary. It will also extend castling, and will prompt for a promotion piece. Note: Do not pass in the rook move if CHANGES represents a castling maneuver. (fn POSITION &optional VALID-P &rest CHANGES) (defalias 'chess-ply-create #[641 "B\211\302!\205\211G\303U\262\204\304\305\306\307E\"\210\211\310H\262\311\203,@9\203.\207\204D\312\313\314@\315 A@&\205\331\204\330@\302!\205V\211G\303U\262\204c\304\305\306\307E\"\210\211\250\203t\211\316Y\203t\211\317X\204|\304\305\320\321E\"\210H\266\202\262\211\203\214\303\202\215\322U\203\323>\204\324>\204A@\211\211\250\203\262\211\316Y\203\262\211\317X\204\272\304\305\325\321E\"\210\326\327\"\262\211\330U\311\331U\203\333\332\n\203\326\303\202\327\322\"\204\360\203\332\n\203\353\333\202\354\334\"\203\335\n\n@#\211\262\203\241\210\266\202\222\211\203\336\202\337U\203\222\340>\204U\203$\316\202%\341A@\211\250\2039\211\316Y\2039\211\317X\204A\304\305\342\321E\"\210\211\327\245\262U\203U\343\311\344\345\346#!\266\211\302!\205a\211G\303U\262\204n\304\305\306\307E\"\210\211\347H\262\211\205\210\211\203\200\350\202\201\351A@\327\"=\262\203\222\352C\244\210 \204\330\353>\204\330\354>\204\330\355>\204\330\356\357\360\"\2064\345\361\211@\262\211\302!\205\304\211G\303U\262\204\321\304\305\306\307E\"\210\362!\211\363\211\302!\205\342\211G\303U\262\204\357\304\305\306\307E\"\210\211\364H\262!\302!\205\211G\303U\262\204 \304\305\306\307E\"\210\211<\204\304\305\365\366E\"\210\364I\266\262\211A\262#\367\"\210\370\360#\262\262?\302!\205E\211G\303U\262\204R\304\305\306\307E\"\210\211\371>\204`\304\305\372\373E\"\210\203i\374\202j\375H\206\203y\303\202z\322\302!\205\205\211G\303U\262\204\222\304\305\306\307E\"\210\211\376>\204\242\304\305\377\201@E\"\210\311\347\316\211W\203\305\211\201A#\203\275\211B\262\210\211T\262\202\245\266\266\202\302!\205\324\211G\303U\262\204\341\304\305\306\307E\"\210\201B>\204\363\304\305\201C\373E\"\210\211\250\203\211\316Y\203\211\317X\204\304\305\201D\321E\"\210\203\374\202\375I\266\203\266\202\201E2/\201F\356\211%0\211\204<\312\313\314$\204\325\312\313\201G$\203\216\211\203\325\353\302!\205[\211G\303U\262\204h\304\305\306\307E\"\210\211\203\200\201H!\204\200\304\305\201I\201JE\"\210\201KI\266\202C\244\210\202\325\203\231\354\202\232\355\302!\205\245\211G\303U\262\204\262\304\305\306\307E\"\210\211\203\312\201H!\204\312\304\305\201I\201JE\"\210\201KI\266\202C\244\210)\266\207" [chess-ply-checking-mate chess-pos-always-white vectorp 75 signal wrong-type-argument chess-pos position 70 nil chess-legal-plies :any :index :target 0 63 #4=(integer 0 63) index 107 :castle :long-castle (integer 0 63) mod 8 2 6 chess-pos-can-castle 81 113 chess-ply-castling-changes 80 112 :promote 7 (integer 0 63) ambiguous-promotion error apply chess-string 64 + - :en-passant :check :checkmate :stalemate t chess-ply-keyword :next-pos chess-pos-move vconcat copy-alist 71 list annotations chess-pos-set-preceding-ply chess-ply-set-keyword #1=(nil t) (member . #1#) color 72 73 #2=(t nil 32 75 81 78 66 82 80 107 113 110 98 114 112) (member . #2#) piece-or-color #[771 "\300!\205 \211G\301U\262\204\302\303\304\305E\"\210\250\203)\306Y\203)\307X\2041\302\303\310\311E\"\210\211\312>\204?\302\303\313\314E\"\210\300!\205L\211G\301U\262\204Y\302\303\304\305E\"\210\211\250\203j\211\306Y\203j\211\307X\204r\302\303\315\311E\"\210H\266\202\211\316U\203\206\247\205\227\211U\207\317\267\202\224\211\320W\207\211\320V\207\211U\207" [vectorp 75 signal wrong-type-argument chess-pos position 0 63 (integer 0 63) index #3=(t nil 32 75 81 78 66 82 80 107 113 110 98 114 112) (member . #3#) piece-or-color #4# 32 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (t 140 nil 144)) 97] 10 "Return non-nil if at POSITION/INDEX there is the given PIECE-OR-COLOR.\nIf PIECE-OR-COLOR is t for white or nil for black, any piece of that\ncolor will do.\n\n(fn POSITION INDEX PIECE-OR-COLOR)"] #5=(nil t) (member . #5#) (integer 0 63) in-check chess-search-position :color keywordp (or null keyword) value 69] 22 (#$ . 8136)]) #@71 Return non-nil if this is the last ply of a game/variation. (fn PLY) (defalias 'chess-ply-final-p #[257 "\300\301\302\303\304\305\306&\206:\211\211@\262\211\307!\205\211G\310U\262\204*\311\312\313\314E\"\210\211\315H\262\211\2058\300\316\317#\262\207" [chess-ply-any-keyword :drawn :perpetual :repetition :flag-fell :resign :aborted vectorp 75 signal wrong-type-argument chess-pos position 74 :stalemate :checkmate] 9 (#$ . 12698)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put chess-ply-final-p speed -1 put byte-optimizer byte-compile-inline-expand] 5) (defvar chess-ply-throw-if-any nil) #@42 This is totally a shortcut. (fn TARGET) (defalias 'chess-ply--add '(macro . #[257 "\300\301DC\302BB\207" [let target ((if (and (or (not specific-target) (= target specific-target)) (chess-pos-legal-candidates position color target (list candidate))) (if chess-ply-throw-if-any (throw 'any-found t) (let ((promotion (and (chess-pos-piece-p position candidate (if color 80 112)) (= (chess-index-rank target) (if color 0 7))))) (if promotion (dolist (promote '(81 82 66 78)) (let ((ply (chess-ply-create position t candidate target :promote promote))) (when ply (push ply plies)))) (let ((ply (chess-ply-create position t candidate target))) (when ply (push ply plies))))))))] 4 (#$ . 13331)])) (defconst chess-white-pieces '(80 78 66 82 81 75)) (defconst chess-black-pieces '(112 110 98 114 113 107)) #@524 Return a list of all legal plies in POSITION. KEYWORDS allowed are: :any return t if any piece can move at all :color :piece :file [:piece or :color must be present] :index :target :candidates These will constrain the plies generated to those matching the above criteria. NOTE: All of the returned plies will reference the same copy of the position object passed in. (fn POSITION &rest KEYWORDS) (defalias 'chess-legal-plies #[385 "\211\204!\306C\307\211\203\211@\310\311#\244\210A\266\202\202\210\211A\207\312>\2038\306\31326\314\310\315\312\"#0)\207\316>\203u\306C\314\317\316>A@\203O\320\202P\321#\211\203q\211@\211A\203j\310\311@\322A%\244\210A\266\202\202Q\210\211A\207\311>A@\211\203\204\211\323W\202\242\211\324!\205\220\211G\325U\262\204\235\326\327\330\331E\"\210\211\332H\262\333>A@\206\347\334>A@\324!\205\274\211G\325U\262\204\311\326\327\330\331E\"\210\211\250\203\332\211\335Y\203\332\211\336X\204\342\326\327\337\340E\"\210H\266\202\226\211\341U\205\f\211\324!\205\372\211G\325U\262\204\326\327\330\331E\"\210\211\342H\262\343\211\211\322 >A@\206\361\334 >A@\211\262\203)C\202\361\344 >A@\211\262\203\242\343\345\335\211W\203\232\211\211\250\203R\335Y\203R\346X\204Z\326\327\347\350E\"\210\211\250\203k\211\335Y\203k\211\346X\204s\326\327\351\352E\"\210\345_\\\266\202\262\353\206\210 #\203\222B\262\210\211T\262\2028\266\211\262\202\361 \324!\205\261\211G\325U\262\204\276\326\327\330\331E\"\210\211\354>\204\314\326\327\355\356E\"\210\343\342\335\211W\203\355\211\353#\203\345\211B\262\210\211T\262\202\317\266\266\202\211\203\264\f\211@\341U\203\260\211 \203 \202 \n\250\203\335Y\203\336X\204\"\326\327\357\340E\"\210\211\250\2033\211\360Y\2033\211\361X\204;\326\327\362\363E\"\210 \fH\\H\266\202\211\205\216\211\n\203R \202S\n\250\203d\335Y\203d\336X\204l\326\327\357\340E\"\210\211\250\203}\211\360Y\203}\211\361X\204\205\326\327\362\363E\"\210 \fH\\H\266\202\353\364#\203\n\203\244\211 U\203=\365 C$\203=\203\276\366\313\306\"\266\202>\353\203\313\341\202\314\367#\205\372\211\211\250\203\342\211\335Y\203\342\211\336X\204\352\326\327\370\340E\"\210\211\345\245\262\f\203\370\335\202\371\346U\211\203)\371\211\203$\211@\372\306 \373&\211\203\211 B\262 \210A\266\202\202\377\266\202>\372\306$\211\203;\211 B\262 \266\210\n\203G\374\202H\375\211\250\203Z\211\335Y\203Z\211\336X\204b\326\327\370\340E\"\210\211\345\245\262U\203\211\203\353\364#\203\211\n\203\205\211 U\203\365 C$\203\203\237\366\313\306\"\266\202\353\203\254\341\202\255\367#\205\333\211\211\250\203\303\211\335Y\203\303\211\336X\204\313\326\327\370\340E\"\210\211\345\245\262\f\203\331\335\202\332\346U\211\203\n\371\211\203\211@\372\306 \373&\211\203\375\211 B\262 \210A\266\202\202\340\266\202\372\306$\211\203\211 B\262 \266\210 \203) \202+@\250\203<\335Y\203<\336X\204D\326\327\357\340E\"\210\211\250\203U\211\360Y\203U\211\361X\204]\326\327\362\363E\"\210 \fH\\H\266\202\211\262\203\344\353 ?#\203#\n\203\206\211 U\203\365 C$\203\203\240\366\313\306\"\266\202\344\353\203\255\341\202\256\367#\205\334\211\211\250\203\304\211\335Y\203\304\211\336X\204\314\326\327\370\340E\"\210\211\345\245\262\f\203\332\335\202\333\346U\211\203 \371\211\203\211@\372\306 \373&\211\203\376\211 B\262 \210A\266\202\202\341\266\202\344\372\306$\211\203\211 B\262 \266\210\202\344\203\344 \2033\376\2024\377\345\"U\203\344\n\203J\211 U\203\343\365 C$\203\343\203d\366\313\306\"\266\202\344\353\203q\341\202r\367#\205\240\211\211\250\203\210\211\335Y\203\210\211\336X\204\220\326\327\370\340E\"\210\211\345\245\262\f\203\236\335\202\237\346U\211\203\317\371\211\203\312\211@\372\306 \373&\211\203\302\211 B\262 \210A\266\202\202\245\266\202\344\372\306$\211\203\341\211 B\262 \266\210 \203\357A\202\361B\250\203\335Y\203\336X\204\n\326\327\357\340E\"\210\211\250\203\211\360Y\203\211\361X\204#\326\327\362\363E\"\210 \fH\\H\266\202\211\262\203\253\353 ?#\203\352\n\203L\211 U\203\345\365 C$\203\345\203f\366\313\306\"\266\202\255\f\353\203s\341\202t\367#\205\242\211\211\250\203\212\211\335Y\203\212\211\336X\204\222\326\327\370\340E\"\210\211\345\245\262\f\203\240\335\202\241\346U\211\203\321\371\211\203\314\211@\372\306 \373&\211\203\304\211 B\262 \210A\266\202\202\247\266\202\255\f\372\306$\211\203\343\211 B\262 \266\266\202\255\f\203\253 \203\372\376\202\373\377\345\"=\203\253\n\203\211 U\203\252\365 C$\203\252\203+\366\313\306\"\266\202\255\f\353\2038\341\2029\367#\205g\211\211\250\203O\211\335Y\203O\211\336X\204W\326\327\370\340E\"\210\211\345\245\262\f\203e\335\202f\346U\211\203\226\371\211\203\221\211@\372\306 \373&\211\203\211\211 B\262 \210A\266\202\202l\266\202\255\f\372\306$\211\203\250\211 B\262 \266\210\266\202\255\f\201H>\203\344 \201IU\203\307C\202\340\201JU\203\325D\202\340\201KU\205\340E\211\203\340 \211@\250\203\371\335Y\203\371\336X\204\326\327\357\340E\"\210\211\250\203\211\360Y\203\211\361X\204\326\327\362\363E\"\210 \fH\\H\266\202\262\203\331 \353\364#\203 \n\203B\211 U\203\333\365 C$\203\333\203\\\366\313\306\"\266\202\334\353\203i\341\202j\367#\205\230\211\211\250\203\200\211\335Y\203\200\211\336X\204\210\326\327\370\340E\"\210\211\345\245\262\f\203\226\335\202\227\346U\211\203\307\371\211\203\302\211@\372\306 \373&\211\203\272\211 B\262 \210A\266\202\202\235\266\202\334\372\306$\211\203\331\211 B\262 \266\210\250\203\360\335Y\203\360\336X\204\370\326\327\357\340E\"\210\211\250\203 \211\360Y\203 \211\361X\204 \326\327\362\363E\"\210 \fH\\H\266\202\262\202%\353 ?#\203\323 \n\2039 \211 U\203\322 \365 C$\203\322 \203S \366\313\306\"\266\202\323 \353\203` \341\202a \367#\205\217 \211\211\250\203w \211\335Y\203w \211\336X\204 \326\327\370\340E\"\210\211\345\245\262\f\203\215 \335\202\216 \346U\211\203\276 \371\211\203\271 \211@\372\306 \373&\211\203\261 \211 B\262 \210A\266\202\202\224 \266\202\323 \372\306$\211\203\320 \211 B\262 \266\210\343\262\202%A\266\202\202\340\210\202\255\f\325U\203 F\211\203\374\n\211@\250\203\n\335Y\203\n\336X\204\n\326\327\357\340E\"\210\211\250\203\n\211\360Y\203\n\211\361X\204'\n\326\327\362\363E\"\210 \fH\\H\266\202\262\203\365\n\353\364#\204M\n\353 ?#\203\365\n\n\203[\n\211 U\203\364\n\365 C$\203\364\n\203u\n\366\313\306\"\266\202\365\n\353\203\202\n\341\202\203\n\367#\205\261\n\211\211\250\203\231\n\211\335Y\203\231\n\211\336X\204\241\n\326\327\370\340E\"\210\211\345\245\262\f\203\257\n\335\202\260\n\346U\211\203\340\n\371\211\203\333\n\211@\372\306 \373&\211\203\323\n\211 B\262 \210A\266\202\202\266\n\266\202\365\n\372\306$\211\203\362\n\211 B\262 \266\210A\266\202\202\355 \210\201L\f ?\343\306%\204\255\f\201M\f\n\203 \325\202 \201N\"\203C \201O\f\343#\211\203B \203: \366\313\306\"\266\202C \fBB\262\210\201M\f\n\203S \201K\202V \201P\"\203\255\f\201O\f\306#\211\203{ \203s \366\313\306\"\266\202\255\f\fBB\262\210\202\255\f\201QU\203\234\fG\211\203\230\f\211@\250\203\243 \335Y\203\243 \336X\204\253 \326\327\357\340E\"\210\211\250\203\274 \211\360Y\203\274 \211\361X\204\304 \326\327\362\363E\"\210 \fH\\H\266\202\211\262\203\221\f\353\364#\204\351 \353 ?#\203\221\f\n\203\367 \211 U\203\220\f\365 C$\203\220\f\203\f\366\313\306\"\266\202\221\f\353\203\f\341\202\f\367#\205M\f\211\211\250\2035\f\211\335Y\2035\f\211\336X\204=\f\326\327\370\340E\"\210\211\345\245\262\f\203K\f\335\202L\f\346U\211\203|\f\371\211\203w\f\211@\372\306 \373&\211\203o\f\211 B\262 \210A\266\202\202R\f\266\202\221\f\372\306$\211\203\216\f\211 B\262 \266\210A\266\202\202\212 \210\202\255\f\201R\343\201S\314\201T#!\266A\266\202\202\361\210\207" [chess-ply-throw-if-any chess-direction-north chess-direction-south chess-pos-10x12-index chess-pos-10x12-address chess-direction-northeast t (80 82 78 66 75 81 112 114 110 98 107 113) chess-legal-plies :piece :any any-found apply delq :color chess-pos-search* (80 78 66 82 81 75) (112 110 98 114 113 107) :candidates 97 vectorp 75 signal wrong-type-argument chess-pos position 70 :target :index 0 63 #2=(integer 0 63) index 80 64 nil :file 8 7 (integer 0 7) rank (integer 0 7) file #[771 "\300!\205 \211G\301U\262\204\302\303\304\305E\"\210\250\203)\306Y\203)\307X\2041\302\303\310\311E\"\210\211\312>\204?\302\303\313\314E\"\210\300!\205L\211G\301U\262\204Y\302\303\304\305E\"\210\211\250\203j\211\306Y\203j\211\307X\204r\302\303\315\311E\"\210H\266\202\211\316U\203\206\247\205\227\211U\207\317\267\202\224\211\320W\207\211\320V\207\211U\207" [vectorp 75 signal wrong-type-argument chess-pos position 0 63 (integer 0 63) index #1=(t nil 32 75 81 78 66 82 80 107 113 110 98 114 112) (member . #1#) piece-or-color #2# 32 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (t 140 nil 144)) 97] 10 "Return non-nil if at POSITION/INDEX there is the given PIECE-OR-COLOR.\nIf PIECE-OR-COLOR is t for white or nil for black, any piece of that\ncolor will do.\n\n(fn POSITION INDEX PIECE-OR-COLOR)"] #3=(t nil 32 75 81 78 66 82 80 107 113 110 98 114 112) (member . #3#) piece-or-color (integer 0 63) -21 21 (integer -21 21) direction 32 chess-pos-legal-candidates throw 112 (integer 0 63) (81 82 66 78) chess-ply-create :promote 6 1 + - chess-direction-southwest chess-direction-northwest chess-direction-southeast chess-rook-directions chess-bishop-directions chess-queen-directions chess-king-directions chess-knight-directions (82 66 81) 82 66 81 chess-search-position chess-pos-can-castle 107 chess-ply-castling-changes 113 78 piece-unrecognized error chess-string] 25 (#$ . 14139)]) (provide 'chess-ply)