;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301\302\303\304\305%\210\300\306\302\307\304\301%\210\310\311\312\313\314DD\315\316\317\320\321\304\306&	\207" [custom-declare-group compression nil "Data compression utilities." :group data jka-compr "jka-compr customization." custom-declare-variable jka-compr-verbose funcall function #[0 "\300\207" [t] 1 ""] "If non-nil, output messages whenever compressing or uncompressing files." :version "24.1" :type boolean] 10)
(defvar jka-compr-added-to-file-coding-system-alist nil)#@66 `file-name-handler-alist' entry used by jka-compr I/O functions.
(defvar jka-compr-file-name-handler-entry nil (#$ . 579))#@208 Stored value of `jka-compr-compression-info-list'.
If Auto Compression mode is enabled, this is the value of
`jka-compr-compression-info-list' when `jka-compr-install' was last called.
Otherwise, it is nil.
(defvar jka-compr-compression-info-list--internal nil (#$ . 708))#@206 Stored value of `jka-compr-mode-alist-additions'.
If Auto Compression mode is enabled, this is the value of
`jka-compr-mode-alist-additions' when `jka-compr-install' was last called.
Otherwise, it is nil.
(defvar jka-compr-mode-alist-additions--internal nil (#$ . 987))#@192 Stored value of `jka-compr-load-suffixes'.
If Auto Compression mode is enabled, this is the value of
`jka-compr-load-suffixes' when `jka-compr-install' was last called.
Otherwise, it is nil.
(defvar jka-compr-load-suffixes--internal nil (#$ . 1263))
(defalias 'jka-compr-build-file-regexp #[0 "\302\303\211\211\203. \211@\304!\305\306\"\203! \211\307\211\224OB\262\210\202' \211B\262\210A\266\202\202 \210\211\205: \310\311\312#\312P\313\310\311\312#\314	\315\260\266\202!\207" [jka-compr-compression-info-list file-name-version-regexp purecopy nil jka-compr-info-regexp string-match "\\\\'\\'" 0 mapconcat identity "\\|" "\\(?:" "\\)" "?\\'"] 9])#@13 

(fn INFO)
(defalias 'jka-compr-info-regexp #[257 "\211\300H\207" [0] 3 (#$ . 1928)])#@13 

(fn INFO)
(defalias 'jka-compr-info-compress-message #[257 "\211\300H\207" [1] 3 (#$ . 2020)])#@13 

(fn INFO)
(defalias 'jka-compr-info-compress-program #[257 "\211\300H\207" [2] 3 (#$ . 2122)])#@13 

(fn INFO)
(defalias 'jka-compr-info-compress-args #[257 "\211\300H\207" [3] 3 (#$ . 2224)])#@13 

(fn INFO)
(defalias 'jka-compr-info-uncompress-message #[257 "\211\300H\207" [4] 3 (#$ . 2323)])#@13 

(fn INFO)
(defalias 'jka-compr-info-uncompress-program #[257 "\211\300H\207" [5] 3 (#$ . 2427)])#@13 

(fn INFO)
(defalias 'jka-compr-info-uncompress-args #[257 "\211\300H\207" [6] 3 (#$ . 2531)])#@13 

(fn INFO)
(defalias 'jka-compr-info-can-append #[257 "\211\300H\207" [7] 3 (#$ . 2632)])#@13 

(fn INFO)
(defalias 'jka-compr-info-strip-extension #[257 "\211\300H\207" [8] 3 (#$ . 2728)])#@13 

(fn INFO)
(defalias 'jka-compr-info-file-magic-bytes #[257 "\211\300H\207" [9] 3 (#$ . 2829)])#@13 

(fn INFO)
(defalias 'jka-compr-info-uncompress-function #[257 "\211G\300V\205\n \211\300H\207" [10] 3 (#$ . 2931)])#@213 Return information about the compression scheme of FILENAME.
The determination as to which compression scheme, if any, to use is
based on the filename itself and `jka-compr-compression-info-list'.

(fn FILENAME)
(defalias 'jka-compr-get-compression-info #[257 "\302!\262\3032+ \304	\211\203' \211@\305\306!\"\203  \307\303\"\210A\266\202\202\f )\210\3040\207" [case-fold-search jka-compr-compression-info-list file-name-sans-versions compression-info nil string-match jka-compr-info-regexp throw] 6 (#$ . 3055)])#@129 Install jka-compr.
This adds entries to `file-name-handler-alist' and `auto-mode-alist'
and `inhibit-local-variables-suffixes'.
(defalias 'jka-compr-install #[0 "\306 \307B\211	B\n\f\n\211\203J \211@\310!\311B\211B\211B\210\312!\203C \310!\313\314EB\310!BA\266\202\202 \210\315\f\"\315\313#\211\207" [jka-compr-file-name-handler-entry file-name-handler-alist jka-compr-compression-info-list jka-compr-compression-info-list--internal jka-compr-mode-alist-additions jka-compr-mode-alist-additions--internal jka-compr-build-file-regexp jka-compr-handler jka-compr-info-regexp (no-conversion . no-conversion) jka-compr-info-strip-extension nil jka-compr append jka-compr-load-suffixes jka-compr-load-suffixes--internal file-coding-system-alist jka-compr-added-to-file-coding-system-alist auto-mode-alist inhibit-local-variables-suffixes load-file-rep-suffixes] 6 (#$ . 3581)])#@117 Return non-nil if jka-compr is installed.
The return value is the entry in `file-name-handler-alist' for jka-compr.
(defalias 'jka-compr-installed-p #[0 "\301\203 \211\204 @A\302=\203 @\262A\262\202 \207" [file-name-handler-alist nil jka-compr-handler] 4 (#$ . 4500)])#@414 Update Auto Compression mode for changes in option values.
If you change the options `jka-compr-compression-info-list',
`jka-compr-mode-alist-additions' or `jka-compr-load-suffixes'
outside Custom, while Auto Compression mode is already enabled
(as it is by default), then you have to call this function
afterward to properly update other variables.  Setting these
options through Custom does this automatically.
(defalias 'jka-compr-update #[0 "\300 \205\n \301 \210\302 \207" [jka-compr-installed-p jka-compr-uninstall jka-compr-install] 1 (#$ . 4786)])#@53 Internal Custom :set function.

(fn VARIABLE VALUE)
(defalias 'jka-compr-set #[514 "\300\"\210\301 \207" [set-default jka-compr-update] 5 (#$ . 5347)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315&\210\300\316\302\303\317DD\320\306\321\312\322\310\311\314\315&\210\300\323\302\303\324DD\325\306\326\310\311\314\315&	\210\300\327\302\303\330DD\331\310\332\333\334\306\335\314\315\312\336&\207" [custom-declare-variable jka-compr-compression-info-list funcall function #[0 "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316!\203 \317\202 \320\321BBB\"\322BBBBBBBB\"\207" [mapcar purecopy ["\\.Z\\'" "compressing" "compress" ("-c") "uncompressing" "gzip" ("-c" "-q" "-d") nil t "\235" zlib-decompress-region] ["\\.bz2\\'" "bzip2ing" "bzip2" nil "bunzip2ing" "bzip2" ("-d") nil t "BZh"] ["\\.tbz2?\\'" "bzip2ing" "bzip2" nil "bunzip2ing" "bzip2" ("-d") nil nil "BZh"] ["\\.\\(?:tgz\\|svgz\\|sifz\\)\\'" "compressing" "gzip" ("-c" "-q") "uncompressing" "gzip" ("-c" "-q" "-d") t nil "\213" zlib-decompress-region] ["\\.g?z\\'" "compressing" "gzip" ("-c" "-q") "uncompressing" "gzip" ("-c" "-q" "-d") t t "\213" zlib-decompress-region] ["\\.lz\\'" "Lzip compressing" "lzip" ("-c" "-q") "Lzip uncompressing" "lzip" ("-c" "-q" "-d") t t "LZIP"] ["\\.lzma\\'" "LZMA compressing" "lzma" ("-c" "-q" "-z") "LZMA uncompressing" "lzma" ("-c" "-q" "-d") t t #1=""] apply vector "\\.xz\\'" "XZ compressing" featurep ns "gzip" "xz" (("-c" "-q") "XZ uncompressing" "xz" ("-c" "-q" "-d") t t "\3757zXZ ") (["\\.txz\\'" "XZ compressing" "xz" ("-c" "-q") "XZ uncompressing" "xz" ("-c" "-q" "-d") t nil "\3757zXZ "] ["\\.dz\\'" nil nil nil "uncompressing" "gzip" ("-c" "-q" "-d") nil t "\213"] ["\\.zst\\'" "zstd compressing" "zstd" ("-c" "-q") "zstd uncompressing" "zstd" ("-c" "-q" "-d") t t "(\265/\375"] ["\\.tzst\\'" "zstd compressing" "zstd" ("-c" "-q") "zstd uncompressing" "zstd" ("-c" "-q" "-d") t nil "(\265/\375"])] 15 #1#] "List of vectors that describe available compression techniques.\nEach element, which describes a compression technique, is a vector of\nthe form [REGEXP COMPRESS-MSG COMPRESS-PROGRAM COMPRESS-ARGS\nUNCOMPRESS-MSG UNCOMPRESS-PROGRAM UNCOMPRESS-ARGS\nAPPEND-FLAG STRIP-EXTENSION-FLAG FILE-MAGIC-CHARS UNCOMPRESS-FUNCTION], where:\n\n   regexp                is a regexp that matches filenames that are\n                         compressed with this format\n\n   compress-msg          is the message to issue to the user when doing this\n                         type of compression (nil means no message)\n\n   compress-program      is a program that performs this compression\n                         (nil means visit file in read-only mode)\n\n   compress-args         is a list of args to pass to the compress program\n\n   uncompress-msg        is the message to issue to the user when doing this\n                         type of uncompression (nil means no message)\n\n   uncompress-program    is a program that performs this uncompression\n\n   uncompress-args       is a list of args to pass to the uncompress program\n\n   append-flag           is non-nil if this compression technique can be\n                         appended\n\n   strip-extension-flag  non-nil means strip the regexp from file names\n                         before attempting to set the mode.\n\n   file-magic-chars      is a string of characters that you would find\n			 at the beginning of a file compressed in this way.\n\n   uncompress-function   is a function that performs uncompression, if\n                         uncompress-program is not found.\n\nIf you set this outside Custom while Auto Compression mode is\nalready enabled (as it is by default), you have to call\n`jka-compr-update' after setting it to properly update other\nvariables.  Setting this through Custom does that automatically." :type (repeat (vector regexp (choice :tag "Compress Message" (string :format "%v") (const :tag "No Message" nil)) (choice :tag "Compress Program" (string) (const :tag "None" nil)) (repeat :tag "Compress Arguments" string) (choice :tag "Uncompress Message" (string :format "%v") (const :tag "No Message" nil)) (choice :tag "Uncompress Program" (string) (const :tag "None" nil)) (repeat :tag "Uncompress Arguments" string) (boolean :tag "Append") (boolean :tag "Strip Extension") (string :tag "Magic Bytes") (choice :tag "Uncompress Function" (symbol) (const :tag "None" nil)))) :set jka-compr-set :version "28.1" :group jka-compr jka-compr-mode-alist-additions #[0 "\300\301!\207" [purecopy (("\\.tgz\\'" . tar-mode) ("\\.tbz2?\\'" . tar-mode) ("\\.txz\\'" . tar-mode) ("\\.tzst\\'" . tar-mode))] 2 #1#] "List of pairs added to `auto-mode-alist' when installing jka-compr.\nUninstalling jka-compr removes all pairs from `auto-mode-alist' that\ninstalling added.\n\nIf you set this outside Custom while Auto Compression mode is\nalready enabled (as it is by default), you have to call\n`jka-compr-update' after setting it to properly update other\nvariables.  Setting this through Custom does that automatically." (repeat (cons string symbol)) "24.4" jka-compr-load-suffixes #[0 "\300\301!\207" [purecopy (".gz")] 2 #1#] "List of compression related suffixes to try when loading files.\nEnabling Auto Compression mode appends this list to `load-file-rep-suffixes',\nwhich see.  Disabling Auto Compression mode removes all suffixes\nfrom `load-file-rep-suffixes' that enabling added.\n\nIf you set this outside Custom while Auto Compression mode is\nalready enabled (as it is by default), you have to call\n`jka-compr-update' after setting it to properly update other\nvariables.  Setting this through Custom does that automatically." (repeat string) auto-compression-mode #[0 "\300\207" [t] 1 #1#] "Non-nil if Auto-Compression mode is enabled.\nSee the `auto-compression-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `auto-compression-mode'." custom-set-minor-mode :initialize custom-initialize-default boolean "22.1"] 14)#@775 Toggle Auto Compression mode.

Auto Compression mode is a global minor mode.  When enabled,
compressed files are automatically uncompressed for reading, and
compressed when writing.

This is a global minor mode.  If called interactively, toggle the
`Auto-Compression mode' mode.  If the prefix argument is
positive, enable the mode, and if it is zero or negative, disable
the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable
the mode if ARG is nil, omitted, or is a positive number.
Disable the mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `(default-value \='auto-compression-mode)'.

The mode's hook is called both when the mode is enabled and when
it is disabled.

(fn &optional ARG)
(defalias 'auto-compression-mode #[256 "\302 \303\301\304=\203 \305\301!?\202! \247\203  \306W\203  \307\202! \310\"\210\311\300!\2038 \312\301\"\305\301!\2038 \301B\313 	\211\203C \204Y \211\204K \203Y \211\203V \314 \266\202[ \315 \210\266\316\317\305\301!\203g \320\202h \321\"\210\322\323!\203\221 \324\301!\210\302 \203\200 \211\302 \232\203\221 \325\326\327\305\301!\203\215 \330\202\216 \331\332$\210\210\333 \210\305\301!\207" [global-minor-modes auto-compression-mode current-message set-default toggle default-value 1 nil t boundp delq jka-compr-installed-p jka-compr-install jka-compr-uninstall run-hooks auto-compression-mode-hook auto-compression-mode-on-hook auto-compression-mode-off-hook called-interactively-p any customize-mark-as-set message "%s %sabled%s" "Auto-Compression mode" "en" "dis" "" force-mode-line-update] 7 (#$ . 11467) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar auto-compression-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205# \310\211%\207" [auto-compression-mode-map auto-compression-mode-hook variable-documentation put "Hook run after entering or leaving `auto-compression-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode auto-compression-mode boundp] 6)#@91 Evaluate BODY with automatic file compression and uncompression enabled.

(fn &rest BODY)
(defalias 'with-auto-compression-mode '(macro . #[128 "\300\301!\302\303BC\304\305\306\307BBBB\306\310BBEE\207" [make-symbol "already-installed" let ((jka-compr-installed-p)) unwind-protect progn unless ((jka-compr-install)) ((jka-compr-uninstall))] 9 (#$ . 13737)]))
(byte-code "\301\302\303\304#\305\306\307\310#\210\305\306\311\312#\210\203 \300\313!\210\314\315!\207" [auto-compression-mode function-put with-auto-compression-mode lisp-indent-function 0 put jka-compr-handler safe-magic t operations (byte-compiler-base-file-name write-region insert-file-contents file-local-copy load) 1 provide jka-cmpr-hook] 5)
