MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 3.128.31.200
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/play/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/play/decipher.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:06:35 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/play/decipher.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314\315\306\301&\210\310\316\302\317\314\315\306\301&\210\320\316!\210\310\321\322\323\314\324\306\301&\210\310\325\302\326\314\327\306\301&\207" [custom-declare-group decipher nil "Cryptanalyze monoalphabetic substitution ciphers." :prefix "decipher-" :group games custom-declare-variable decipher-force-uppercase t "Non-nil means to convert ciphertext to uppercase.\nnil means the case of the ciphertext is preserved.\nThis variable must be set before typing `\\[decipher]'." :type boolean decipher-ignore-spaces "Non-nil means to ignore spaces and punctuation when counting digrams.\nYou should set this to nil if the cipher message is divided into words,\nor t if it is not.\nThis variable is buffer-local." make-variable-buffer-local decipher-undo-limit 5000 "The maximum number of entries in the undo list.\nWhen the undo list exceeds this number, 100 entries are deleted from\nthe tail of the list." integer decipher-mode-hook "Hook to run upon entry to decipher." hook] 8)
#@39 Font Lock keywords for Decipher mode.
(defvar decipher-font-lock-keywords '(("^:.*" . font-lock-keyword-face) ("^>.*" . font-lock-string-face) ("^%!.*" . font-lock-constant-face) ("^%.*" . font-lock-comment-face) ("\\`(\\([a-z]+\\) +\\([A-Z]+\\)" (1 font-lock-string-face) (2 font-lock-keyword-face)) ("^)\\([A-Z ]+\\)\\([a-z ]+\\)" (1 font-lock-keyword-face) (2 font-lock-string-face))) (#$ . 1608))
#@27 Keymap for Decipher mode.
(defvar decipher-mode-map (byte-code "\302 \303!\210\304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\304\325\326#\210\304\327\324#\210\304\330\324#\210\331\211\332X\203`\304\333	!\326#\210	T\211\202L))\207" [map key make-keymap suppress-keymap define-key "A" decipher-show-alphabet "C" decipher-complete-alphabet "D" decipher-digram-list "F" decipher-frequency-count "M" decipher-make-checkpoint "N" decipher-adjacency-list "R" decipher-restore-checkpoint "U" decipher-undo " " decipher-keypress [remap undo] [remap advertised-undo] 97 122 vector] 5) (#$ . 2015))
#@33 Keymap for Decipher-Stats mode.
(defvar decipher-stats-mode-map (byte-code "\301 \302!\210\303\304\305#\210\303\306\307#\210\303\310\311#\210)\207" [map make-keymap suppress-keymap define-key "D" decipher-digram-list "F" decipher-frequency-count "N" decipher-adjacency-list] 4) (#$ . 2718))
#@28 Decipher mode syntax table
(defvar decipher-mode-syntax-table nil (#$ . 3021))
(byte-code "\204\303 \304	\305X\203\306	\307\n#\210	T\211\202\n\n*\303\207" [decipher-mode-syntax-table c table make-syntax-table 48 57 modify-syntax-entry "_"] 5)
(defvar decipher-alphabet nil)
(make-variable-buffer-local 'decipher-alphabet)
#@147 The buffer which displays statistics for this ciphertext.
Do not access this variable directly, use the function
`decipher-stats-buffer' instead.
(defvar decipher-stats-buffer nil (#$ . 3360))
(make-variable-buffer-local 'decipher-stats-buffer)
#@41 The number of entries in the undo list.
(defvar decipher-undo-list-size 0 (#$ . 3611))
(make-variable-buffer-local 'decipher-undo-list-size)
#@124 The undo list for this buffer.
Each element is either a cons cell (PLAIN-CHAR . CIPHER-CHAR) or a
list of such cons cells.
(defvar decipher-undo-list nil (#$ . 3759))
(make-variable-buffer-local 'decipher-undo-list)
(defvar decipher-pending-undo-list nil)
#@74 See the functions decipher-loop-with-breaks and decipher-loop-no-breaks.
(defvar decipher-char nil (#$ . 4021))
#@74 Format a buffer of ciphertext for cryptanalysis and enter Decipher mode.
(defalias 'decipher #[nil "db\210n\204\n\302c\210eb\210\303\304!\203\305\306!\210\202Z\307c\210\310m\204S\303\311!\203/\310y\210\202\312 \210l\203<\310y\210\202\313c\210`\310y\210	\203M\314`\"\210\315c\210\202)\316 \210\316 \210eb\210\317y\210\320 \207" [begin decipher-force-uppercase "\n" looking-at "^(abcdefghijklmnopqrstuvwxyz   ABCDEFGHIJKLMNOPQRSTUVWXYZ   -\\*-decipher-\\*-\n)" message "Buffer is already formatted, entering Decipher mode..." "(abcdefghijklmnopqrstuvwxyz   ABCDEFGHIJKLMNOPQRSTUVWXYZ   -*-decipher-*-\n)\n\n" nil "^%" delete-horizontal-space ":" upcase-region ">\n" delete-blank-lines 3 decipher-mode] 3 (#$ . 4139) nil])
#@669 Major mode for decrypting monoalphabetic substitution ciphers.
Lower-case letters enter plaintext.
Upper-case letters are commands.

The buffer is made read-only so that normal Emacs commands cannot
modify it.

The most useful commands are:
\<decipher-mode-map>
\[decipher-digram-list]  Display a list of all digrams & their frequency
\[decipher-frequency-count]  Display the frequency of each ciphertext letter
\[decipher-adjacency-list]  Show adjacency list for current letter (lists letters appearing next to it)
\[decipher-make-checkpoint]  Save the current cipher alphabet (checkpoint)
\[decipher-restore-checkpoint]  Restore a saved cipher alphabet (checkpoint)
(defalias 'decipher-mode #[nil "\306 \210\307\310\311\312\f\203\310\313!\210\314!\210edU\204$\315 \210\316\317!\210\320\321\322\323\310\307$\210\324\325!\210\307\211\207" [buffer-undo-list indent-tabs-mode major-mode mode-name decipher-force-uppercase case-fold-search kill-all-local-variables t nil decipher-mode "Decipher" use-local-map set-syntax-table decipher-read-alphabet make-local-variable font-lock-defaults (decipher-font-lock-keywords t) add-hook change-major-mode-hook #[nil "\302\211\211\207" [buffer-read-only buffer-undo-list nil] 3] run-mode-hooks decipher-mode-hook decipher-mode-map decipher-mode-syntax-table buffer-read-only] 5 (#$ . 4883) nil])
(put 'decipher-mode 'mode-class 'special)
(defalias 'decipher-last-command-char '(macro . #[nil "\300\301!\203\302\207\303\207" [fboundp event-to-character (event-to-character last-command-event) last-command-event] 2]))
#@44 Enter a plaintext or ciphertext character.
(defalias 'decipher-keypress #[nil "\306\307\212\212\310 \210g\211\311U\203\312\202:\n\313U\203\307\202:\n\314U\203+\315\312\202:\n\316U\2037\315\307\202:\317\320!*\204D\307\321y\210)g\f\211z\322U\204V
\323U\204\\	
\"\210-\307u\207" [buffer-read-only decipher-function first-char goal-column last-command-event char-b decipher-set-map nil beginning-of-line 58 t 62 40 decipher-alphabet-keypress 41 error "Bad location" -1 119 32 char-a] 4 (#$ . 6465) nil])
(defalias 'decipher-alphabet-keypress #[(a b) "\303Y\203\304X\203\305	\"\207\306Y\203:\307X\203:	\310U\2035\311\n\"A\211\310U?\2059\305	\310\"\207\305	\"\207\312\313!\207" [a b decipher-alphabet 65 90 decipher-set-map 97 122 32 assoc error "Bad character"] 3])
#@33 Undo a change in Decipher mode.
(defalias 'decipher-undo #[nil "\306	\307=\204\f\310\311!\210\n\312=\204\f\204\310\313!\210\f\211A@\314\211\211\211\211@:\2049C\211A@\211\203s\315
A
@\"\211\203h@:\203a\316\"\202fB\317
A
@\306#\210\2029\320!\210-\312\321\322!\207" [this-command major-mode last-command decipher-undo-list decipher-pending-undo-list undo-map t decipher-mode error "This buffer is not in Decipher mode" decipher-undo "No further undo information" nil decipher-get-undo append decipher-set-map decipher-add-undo message "Undo!" redo-rec redo-map buffer-read-only undo-rec] 6 (#$ . 7272) nil])
#@32 Add UNDO-REC to the undo list.
(defalias 'decipher-add-undo #[(undo-rec) "\205 	B\nT\211V\205 \305Z\211S	\233\306\241\210\f\211)\207" [undo-rec decipher-undo-list decipher-undo-list-size decipher-undo-limit new-size 100 nil] 3 (#$ . 7933)])
(defalias 'decipher-copy-cons #[(cons) "\205	@AB\207" [cons] 2])
(defalias 'decipher-get-undo #[(cipher-char plain-char) "\305\306	\"!\305\307\n	\"!\n\310\232\203\f\202?A\232\203#\311\202?A\310\232\2034\f\206?\310B\202?\f\203>\fD\202?*\207" [cipher-char decipher-alphabet plain-char plain-map cipher-map decipher-copy-cons rassoc assoc 32 nil] 5])
(defalias 'decipher-set-map #[(cipher-char plain-char &optional no-undo) "\226\211\306Y\203\307X\204\310\311!\210	\204\312\313\n\"!\210\314!\314\n!\315\211\211\212eb\210\316\"\211\203P\f\317\241\210\320\321\314\f@!P!\210\322\317!\210\323 \210\324\n\"\211\203z\fA\317U\204h\325\fA\317\326#\210\f\241\210\320\321P!\210\322!\210\323 \210\320\327P!\210\322\n!\210\326\227\330 \320\331\315\326#\205\252\332 \333\334#\203\217\322\n!\210\202\232.\207" [cipher-char no-undo plain-char bound mapping case-fold-search 65 90 error "Bad character" decipher-add-undo decipher-get-undo char-to-string nil rassoc 32 search-forward-regexp "^([a-z]*" decipher-insert beginning-of-line assoc decipher-set-map t "^([a-z]+   [A-Z]*" ignore "^:" point-at-eol search-forward end plain-string cipher-string decipher-alphabet font-lock-fontify-region-function] 6])
(defalias 'decipher-insert #[(char) "iS\212\302y\210g\303U\204g\304U\204\305\306!\210\307\310\"\210l\204$\311\312!\210\313	!*\207" [col char nil 62 41 error "Bad location" move-to-column t delete-char 1 insert-and-inherit] 3])
#@209 Checkpoint the current cipher alphabet.
This records the current alphabet so you can return to it later.
You may have any number of checkpoints.
Type `\[decipher-restore-checkpoint]' to restore a checkpoint.
(defalias 'decipher-make-checkpoint #[(desc) ";\204\303\304\211eb\210\305\306!\210\307\310\311\"\210\312`\313Z`\"\305\314\304\315#\204I\316\317\304\311#\203@\320y\210\321\322!\204@\304y\210\323c\210\320y\210\324\325\326\327\"\330\261\210\331 \210\332\n\333\323\261*\207" [desc buffer-read-only alphabet "" nil re-search-forward "^)" move-to-column 27 t buffer-substring-no-properties 26 "^%![A-Z ]+!" end re-search-backward "^% *Local Variables:" -1 looking-at "^ *$" 10 "\n%" make-string 69 45 "\n% Checkpoints:\n% abcdefghijklmnopqrstuvwxyz\n" beginning-of-line "%!" "! "] 5 (#$ . 9685) "sCheckpoint description: "])
#@235 Restore the cipher alphabet from a checkpoint.
If point is not on a checkpoint line, moves to the first checkpoint line.
If point is on a checkpoint, restores that checkpoint.

Type `\[decipher-make-checkpoint]' to make a checkpoint.
(defalias 'decipher-restore-checkpoint #[nil "\302 \210\303\304!\203(\305\306!\307eb\210\310\311!\210l\204!`\307\210`|\210	c\210\312 *\207eb\210\310\313\307\314#\203:\315\316\317\320!\"\207\321\322!\207" [buffer-read-only alphabet beginning-of-line looking-at "%!\\([A-Z ]+\\)!" match-string 1 nil re-search-forward "^)" decipher-resync "^%![A-Z ]+!" t message "Select the checkpoint to restore and type `%s'" substitute-command-keys "\\[decipher-restore-checkpoint]" error "No checkpoints in this buffer"] 4 (#$ . 10532) nil])
#@201 Complete the cipher alphabet.
This fills any blanks in the cipher alphabet with the unused letters
in alphabetical order.  Use this when you have a keyword cipher and
you have determined the keyword.
(defalias 'decipher-complete-alphabet #[nil "\306\307\211\211\f\211A@\211\2038\nA\310\232\203\n\311
\"\203(
T\202\310
B	B\312
\n@\313#\210\202\n\314	!-\207" [decipher-alphabet undo-rec plain-map buffer-read-only ptr cipher-char 65 nil 32 rassoc decipher-set-map t decipher-add-undo] 5 (#$ . 11307) nil])
#@58 Display the current cipher alphabet in the message line.
(defalias 'decipher-show-alphabet #[nil "\301\302\303\304\305#\"\207" [decipher-alphabet message "%s" mapconcat #[(a) "\301@!\301A!P\207" [a char-to-string] 3] ""] 6 (#$ . 11834) nil])
#@171 Reprocess the buffer using the alphabet from the top.
This regenerates all deciphered plaintext and clears the undo list.
You should use this if you edit the ciphertext.
(defalias 'decipher-resync #[nil "\306\307!\210\310\211\211\212\311 \210eb\210\312\313\310\314#\203!\315\316\310\211#\210\312\317\310\314#\2032\315\320\310\211#\210\202!\311 \210\n\211A@\211\203PA\321\232\2045\322A@\"\210\2025,\310\323\306\324!\207" [mapping buffer-read-only alphabet decipher-alphabet decipher-undo-list decipher-undo-list-size message "Reprocessing buffer..." nil decipher-read-alphabet re-search-forward "^).+" t replace-match ")" "^>.+" ">" 32 decipher-set-map 0 "Reprocessing buffer...done"] 4 (#$ . 12086) nil])
#@67 Build the decipher-alphabet from the alphabet line in the buffer.
(defalias 'decipher-read-alphabet #[nil "\212eb\210\302\303!\210\304\305\306\"\210\307\310\211\311Y\205'\312u\210	gBB	S\211\202*\207" [decipher-alphabet plain-char search-forward-regexp "^)" move-to-column 27 t nil 122 97 -1] 4 (#$ . 12815)])
#@55 Display the frequency count in the statistics buffer.
(defalias 'decipher-frequency-count #[nil "\300 \210\301\302\303\"\207" [decipher-analyze decipher-display-regexp "^A" "^[A-Z][A-Z]"] 3 (#$ . 13138) nil])
#@55 Display the list of digrams in the statistics buffer.
(defalias 'decipher-digram-list #[nil "\300 \210\301\302\303\"\207" [decipher-analyze decipher-display-regexp "[A-Z][A-Z] +[0-9]" "^$"] 3 (#$ . 13353) nil])
#@653 Display the adjacency list for the letter at point.
The adjacency list shows all letters which come next to CIPHER-CHAR.

An adjacency list (for the letter X) looks like this:
       1 1         1     1   1       3 2 1             3   8
X: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z *  11   14   9%
     1 1                 1       2   1   1     2       5   7
This says that X comes before D once, and after B once.  X begins 5
words, and ends 3 words (`*' represents a space).  X comes before 8
different letters, after 7 different letters, and is next to a total
of 11 different letters.  It occurs 14 times, making up 9% of the
ciphertext.
(defalias 'decipher-adjacency-list #[(cipher-char) "\303 \210\304\211r\305 q\210eb\210\306\307\310\n\"\304\311#\204\312\313\n\"\210\314y\210`\315y\210`)\316	\"*\207" [end start cipher-char decipher-analyze nil decipher-stats-buffer re-search-forward format "^%c: " t error "Character `%c' is not used in ciphertext" -1 3 decipher-display-range] 4 (#$ . 13571) (list (upcase (following-char)))])
#@64 Perform frequency analysis on the current buffer if necessary.
(defalias 'decipher-analyze #[nil "\302=\206\303=\203\304	!\203\305	!\206\306 \207\307\310!\207" [major-mode decipher-stats-buffer decipher-stats-mode decipher-mode bufferp buffer-name decipher-analyze-buffer error "This buffer is not in Decipher mode"] 2 (#$ . 14631)])
#@246 Display text between START and END in the statistics buffer.
START and END are positions in the statistics buffer.  Makes the
statistics buffer visible and sizes the window to just fit the
displayed text, but leaves the current window selected.
(defalias 'decipher-display-range #[(start end) "\305 \306 \307p\n=\204\310\n!\210b\210\311\307!\204&\312\313\f\"T\314 Z!\210\315\316!\210\317	!+\207" [pop-up-windows current-window stats-buffer start end decipher-stats-buffer selected-window t pop-to-buffer one-window-p enlarge-window count-lines window-height recenter 0 select-window] 4 (#$ . 14982)])
#@235 Display text between two regexps in the statistics buffer.

START-REGEXP matches the first line to display.
END-REGEXP matches the line after that which ends the display.
The ending line is included in the display unless it is blank.
(defalias 'decipher-display-regexp #[(start-regexp end-regexp) "\304\211r\305 q\210eb\210\306\n!\210\307 \210`\306!\210\307 \210\310\311!\204%\312y\210`)\313	\"*\207" [end start start-regexp end-regexp nil decipher-stats-buffer re-search-forward beginning-of-line looking-at "^ *$" 1 decipher-display-range] 3 (#$ . 15598)])
#@439 Loop through ciphertext, calling FUNC once for each letter & word division.

FUNC is called with no arguments, and its return value is unimportant.
It may examine `decipher-char' to see the current ciphertext
character.  `decipher-char' contains either an uppercase letter or a space.

FUNC is called exactly once between words, with `decipher-char' set to
a space.

See `decipher-loop-no-breaks' if you do not care about word divisions.
(defalias 'decipher-loop-with-breaks #[(func) "\303\211\212eb\210\n \210\304\305\306\307#\205Ol\204?g\226\211\310Y\203&	\311X\204(\303	\303\232\2034\303\232\2047\n \210	\306u\210\202	\303\232\204\303\211\n \210\202+\207" [decipher--loop-prev-char decipher-char func 32 search-forward-regexp "^:" nil t 65 90] 5 (#$ . 16171)])
#@370 Loop through ciphertext, calling FUNC once for each letter.

FUNC is called with no arguments, and its return value is unimportant.
It may examine `decipher-char' to see the current ciphertext letter.
`decipher-char' contains an uppercase letter.

Punctuation and spacing in the ciphertext are ignored.
See `decipher-loop-with-breaks' if you care about word divisions.
(defalias 'decipher-loop-no-breaks #[(func) "\302\212eb\210\303\304\302\305#\205*l\204g\226\211\306Y\203$\307X\203$	 \210\302u\210\202*\207" [decipher-char func nil search-forward-regexp "^:" t 65 90] 5 (#$ . 16962)])
#@155 Insert frequency counts in current buffer.
Each element of FREQ-LIST is a list (LETTER FREQ ...).
TOTAL is the total number of letters in the ciphertext.
(defalias 'decipher-insert-frequency-counts #[(freq-list total) "\305\306\211\307V\205=\n\211\2030\211@@)\310\311@A@@A@\312_\f\245#\261\210\305\233\211\204\313c\210\nA	S\211\202*\207" [temp-list i freq-list x total 4 nil 0 format "%4d%3d%%  " 100 10] 7 (#$ . 17566)])
(defalias 'decipher--analyze #[nil "\306\307	#\310\n\"\206\n\311BB\211@\211\211AT\241\210)\312Y\203F
\312ZH
	\313\232\2034\314\2027	\312Z

HTI\210*	\312Y\203\210	\312ZHTI*\203\210	\312ZH\313\232\203v\314\202y\312ZHTI\210*	\211\207" [decipher--prev-char decipher-char decipher--digram decipher--digram-list #1=#:v decipher--before format "%c%c" assoc 0 65 32 26 #2=#:v #3=#:v decipher--freqs #4=#:v #5=#:v decipher--after #6=#:v #7=#:v] 5])
#@44 Generate the counts for an adjacency list.
(defalias 'decipher--digram-counts #[(counts) "\302\303\304	\305#\306\307	\310H\302V\203S\202\"P)\207" [total counts 0 mapconcat #[(x) "\302V\203	T\303\207\304V\203	T\305\306\"\207\307\207" [x total 99 "XX" 0 format "%2d" "  "] 3] "" format "%4d" 26] 5 (#$ . 18509)])
#@65 Count the number of different letters a letter appears next to.
(defalias 'decipher--digram-total #[(before-count after-count) "\304\305S\211\304Y\203#\nH\304V\204H\304V\203	T\202	*\207" [i total before-count after-count 0 26] 2 (#$ . 18842)])
#@119 Perform frequency analysis and store results in statistics buffer.
Creates the statistics buffer if it doesn't exist.
(defalias 'decipher-analyze-buffer #[nil "\203\306\202	\307\310\311\312\"\310\311\312\"\310\311\313\"\313\312\211\211345\314\315!\210\31166S\2116\313Y\203M46\310\316\313\"I\21036\310\316\313\"I\210\202+)\203t\317\320!\210\31166S\2116\313Y\203p36H\311\313I\210\202Y)\202x\321\320!\210\314\322!\210\323\n\324\"\312\241\210\325\211\n\326\"\327\"\31166S\2116\313Y\203\2736\330\\
6H\33146H36H\"E	B\f
6H\\\202\216)r\332\333!q\2107\334=\204\317\335\336\337 \"\210\3128\340 \210\341	\f\"\210\342c\210\325	\343\"\341	\f\"\210\342\344\345	\312#\346\261\210\347\nG\350\\\342\"\21196\312:6\313V\203A\n\211:\203/:\211;@@)\351\352:\211;@A)\"\261\2109:\233\211:\204\353 \210\342c\210\nA6S\2116\202+\325	\354\"\211\312\2116<::\211A:@\211<\203\251<\211;A@)\313\232\204P<@\330Z6\342\355\35646H!\342<@\357\351\360<AA@<\211;A@)<\211;A@)\361_\f\245$\35636H!\342\261	\210\202P+\3338\362\312!\210.	\314\312!\207" [decipher-ignore-spaces freq-list decipher--digram-list decipher--digram total-chars decipher--freqs 32 42 make-vector 26 nil 0 message "Scanning buffer..." 27 decipher-loop-no-breaks decipher--analyze decipher-loop-with-breaks "Processing results..." last 2 sort #[(a b) "@	@\231\207" [a b] 2] #[(a b) "A	AV\207" [a b] 2] 65 decipher--digram-total decipher-stats-buffer t decipher-stats-mode error "Buffer %s is not in Decipher-Stats mode" buffer-name erase-buffer decipher-insert-frequency-counts 10 #[(a b) "\211A@)\n\211A@)V\207" [a x b] 3] mapconcat #[(a) "\301@!\207" [a char-to-string] 2] "\n\n" floor 9 format "%3d   " delete-horizontal-space #[(a b) "AA@	AA@V\207" [a b] 2] "  " decipher--digram-counts ": A B C D E F G H I J K L M N O P Q R S T U V W X Y Z *" "%4d %4d %3d%%\n  " 100 set-buffer-modified-p decipher--after decipher--before decipher--prev-char i major-mode buffer-read-only rows temp-list x entry] 13 (#$ . 19108)])
#@50 Major mode for displaying ciphertext statistics.
(defalias 'decipher-stats-mode #[nil "\306 \210\307\211\310\211\311\312\313!\210\314\315!\207" [buffer-read-only buffer-undo-list case-fold-search indent-tabs-mode major-mode mode-name kill-all-local-variables t nil decipher-stats-mode "Decipher-Stats" use-local-map run-mode-hooks decipher-stats-mode-hook decipher-stats-mode-map] 3 (#$ . 21168) nil])
(put 'decipher-stats-mode 'mode-class 'special)
#@59 Make the statistics buffer visible, but do not select it.
(defalias 'decipher-display-stats-buffer #[nil "\302 \303 p	=\206\304	!\210\305!*\207" [current-window stats-buffer decipher-stats-buffer selected-window pop-to-buffer select-window] 2 (#$ . 21632)])
#@206 Return the buffer used for decipher statistics.
If CREATE is non-nil, create the buffer if it doesn't exist.
This is guaranteed to return a buffer in Decipher-Stats mode;
if it can't, it signals an error.
(defalias 'decipher-stats-buffer #[(&optional create) "\304=\203p\207\305	!\203(\306	!\203(r	q\210)\304=\204&\307\310\306	!\"\210	\207\n\203U\311\306 \311Q\312\300\313\314!!\"\243\304=\203F\314!\202I\315!)r	q\210\304 \210)	\207\307\316!\207" [major-mode decipher-stats-buffer create stats-name decipher-stats-mode bufferp buffer-name error "Buffer %s is not in Decipher-Stats mode" "*" assoc buffer-local-variables get-buffer generate-new-buffer "No statistics buffer"] 5 (#$ . 21902)])
(provide 'decipher)

MMCT - 2023