From unknown Thu Jun 19 16:24:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39609: 26.3; Packaging system: Package documentation in the *Help* buffer Resent-From: dieter@duenenhof-wilhelm.de (H. Dieter Wilhelm) Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 14 Feb 2020 21:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 39609 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 39609@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.158171396624829 (code B ref -1); Fri, 14 Feb 2020 21:00:02 +0000 Received: (at submit) by debbugs.gnu.org; 14 Feb 2020 20:59:26 +0000 Received: from localhost ([127.0.0.1]:34777 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j2i3Z-0006SO-Bw for submit@debbugs.gnu.org; Fri, 14 Feb 2020 15:59:26 -0500 Received: from lists.gnu.org ([209.51.188.17]:53685) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j2i3X-0006SG-24 for submit@debbugs.gnu.org; Fri, 14 Feb 2020 15:59:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:59419) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j2i3T-0005YJ-Tv for bug-gnu-emacs@gnu.org; Fri, 14 Feb 2020 15:59:22 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_NONE, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j2i3Q-0007oi-56 for bug-gnu-emacs@gnu.org; Fri, 14 Feb 2020 15:59:19 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:40287) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j2i3P-0007lw-LF for bug-gnu-emacs@gnu.org; Fri, 14 Feb 2020 15:59:16 -0500 Received: from ping ([92.116.189.73]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N64FC-1jZxQ90kkS-016PJX for ; Fri, 14 Feb 2020 21:59:13 +0100 From: dieter@duenenhof-wilhelm.de (H. Dieter Wilhelm) Date: Fri, 14 Feb 2020 21:59:11 +0100 Message-ID: <86y2t4zy00.fsf@duenenhof-wilhelm.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:gNhNIOd4SreT0eht1uo4fxsRUq9aQ9358BaR2ouns78i14AKwrs p1GFMl7D0mP4gr0ZeiuNzadzP9HsQE6U/1xGoMWylzp97siacqIAlafj0dEDHwk0nZVCq4W P53c6o15qthBoMgtBwnrNAF+31KXz/hM3ccZf/rxmsvvMhU7c5KdUh01nOWU+xbcKze9H60 bHJStQX/uTAVl50iFWu3g== X-UI-Out-Filterresults: notjunk:1;V03:K0:/ORj61twIJg=:tlf9ew92D0cVDkJHKm4F+j 7fqSA/dfqM9EPNlUiC3zVbrarJgrJO+om6g77CQ0OOOwi/z1sivK+RVmaS6DbTEF5C4TJ35v5 UHQLU/JkLXhM+FPKVJaMjfPYLI9rp1hvsmUeQkw4kcPxM/vaITBnC1JxUM+P2zi/9ESnFkrFl XxiKJg6hqZLVPjXtUEybOnMGV+tH5bQkLmWF8CJ1jSBxgvbE0g4P6sJgAMFOWkzNim9MkGkDw U2gupQ2dv/yp4vgDBl8me7yumnYD7MHv1YlWOU3e7rmd7I/1TgVz/G9LiSYu8fUJgLj1TzaJb nd1RcWRuPfbb7TgkLxpSN6U2OLE5fqTU0mttWYVoiN3PtmW6JOacyxKw/LoAicN6ntlZgpy1F iXE/8lZ2MH3bNEPdlyw5evs2yleHQjQ9GP2xkCS9EMrCwbPdo0fcLS5WglCf5PYKqmNCUXFvb xJpJfmUIjVkniCNr6QyxT9BAlkyONyta87ObTI/a/3zvP/rhklx73WnMIK6qdnWVkS6/htPyy GWIcebPDHWe4+MSvv/SxWmVqGRYo46iHD7dtRcaKKOzVAlAEKYelz+RgYiG0+TiCuN6olgcgs YYaDJs9euAwCco3EhoQY5EeoApx6dIcz1FURELjpUlL1KzAqKCdr2fb9pDHiNezAAmaerkx6O gtDRdXlFnthRxrd2disC9Z1voJn5LruWkRfyBzmjtH/Z8zqeOBcguepGLKB3ojD9FACq1ab/w pbd4czKm2z5u0j0lVCB+yniwJpBzqmmamcFKzAU+kGQ7QBd7wVbNdcA8FXeVlJmOp5VwT7Lup HpZrwfBr2tRPmtbJX0BSY9iznxVoUUtgDwz5XQ5JjyfUwNI4hUTLktDY7JE14m7rSPHAq4e X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.10 X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello Emacs The Elisp manual (GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) of 2019-12-14) states that a README file in the content directory of a package will be used as a package description (C-h P). Please check (info "(elisp) Multi-file Packages"). Yet this isn't working! By looking at other packages It seems that there must be a file `PACKAGE-NAME-readme.txt' BELOW the content directory to get a description in the package help. Thanks for resolving this issue Dieter In GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) of 2019-12-14 built on ping Windowing system distributor 'The X.Org Foundation', version 11.0.11906000 System Description: Ubuntu 18.04 LTS (beaver-three-eyed-raven X92) Recent messages: nnimap read 12k from imap.1und1.de Reading active file from archive via nnfolder...done Reading active file via nndraft...done Checking new news...done Opening nnimap server on 1und1...done nnimap read 0k from imap.1und1.de No more unseen articles Quit [3 times] No more unseen articles Mark set [2 times] execute-extended-command: =E2=80=98=E2=80=99 is not a valid command name Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM THREADS LCMS2 Important settings: value of $LC_MONETARY: de_DE.UTF-8 value of $LC_NUMERIC: de_DE.UTF-8 value of $LC_TIME: de_DE.UTF-8 value of $LANG: en_GB.UTF-8 value of $XMODIFIERS: @im=3Dibus locale-coding-system: utf-8-unix Major mode: Article Minor modes in effect: diff-auto-refine-mode: t icomplete-mode: t display-battery-mode: t display-time-mode: t show-paren-mode: t electric-pair-mode: t shell-dirtrack-mode: t async-bytecomp-package-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t abbrev-mode: 1 Load-path shadows: /home/dieter/.emacs.d/elpa/apdl-mode-20.1.0/apdl-initialise hides ~/ansys-m= ode/apdl-initialise /home/dieter/.emacs.d/elpa/apdl-mode-20.1.0/apdl-mode hides ~/ansys-mode/ap= dl-mode /home/dieter/.emacs.d/elpa/apdl-mode-20.1.0/apdl-mode-pkg hides ~/ansys-mod= e/apdl-mode-pkg /home/dieter/.emacs.d/elpa/apdl-mode-20.1.0/apdl-process hides ~/ansys-mode= /apdl-process /home/dieter/.emacs.d/elpa/apdl-mode-20.1.0/apdl-template hides ~/ansys-mod= e/apdl-template /home/dieter/.emacs.d/elpa/apdl-mode-20.1.0/apdl-keyword hides ~/ansys-mode= /apdl-keyword /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob hides /usr/local/sr= c/emacs/emacs-26.3/lisp/org/ob /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-hledger hides /usr/= local/src/emacs/emacs-26.3/lisp/org/ob-hledger /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-datetree hides /us= r/local/src/emacs/emacs-26.3/lisp/org/org-datetree /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-css hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-css /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-io hides /usr/local= /src/emacs/emacs-26.3/lisp/org/ob-io /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-sed hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-sed /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-sqlite hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-sqlite /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-compat hides /usr/= local/src/emacs/emacs-26.3/lisp/org/org-compat /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-org hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ox-org /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-publish hides /usr/= local/src/emacs/emacs-26.3/lisp/org/ox-publish /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-ref hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-ref /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-java hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-java /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-perl hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-perl /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-org hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-org /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-entities hides /us= r/local/src/emacs/emacs-26.3/lisp/org/org-entities /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-R hides /usr/local/= src/emacs/emacs-26.3/lisp/org/ob-R /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-forth hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/ob-forth /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-inlinetask hides /= usr/local/src/emacs/emacs-26.3/lisp/org/org-inlinetask /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-capture hides /usr= /local/src/emacs/emacs-26.3/lisp/org/org-capture /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-duration hides /us= r/local/src/emacs/emacs-26.3/lisp/org/org-duration /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-C hides /usr/local/= src/emacs/emacs-26.3/lisp/org/ob-C /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-maxima hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-maxima /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-dot hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-dot /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-plot hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/org-plot /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-clojure hides /usr/= local/src/emacs/emacs-26.3/lisp/org/ob-clojure /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-lint hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/org-lint /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-asymptote hides /us= r/local/src/emacs/emacs-26.3/lisp/org/ob-asymptote /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-stan hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-stan /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-version hides /usr= /local/src/emacs/emacs-26.3/lisp/org/org-version /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-indent hides /usr/= local/src/emacs/emacs-26.3/lisp/org/org-indent /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-exp hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-exp /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-table hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/org-table /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-ruby hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-ruby /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-agenda hides /usr/= local/src/emacs/emacs-26.3/lisp/org/org-agenda /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-mobile hides /usr/= local/src/emacs/emacs-26.3/lisp/org/org-mobile /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-latex hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/ox-latex /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-mouse hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/org-mouse /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-makefile hides /usr= /local/src/emacs/emacs-26.3/lisp/org/ob-makefile /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-list hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/org-list /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-eval hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-eval /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-lua hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-lua /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-man hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ox-man /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-odt hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ox-odt /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-sql hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-sql /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-ebnf hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-ebnf /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-calc hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-calc /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-feed hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/org-feed /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-shen hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-shen /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-mscgen hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-mscgen /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-protocol hides /us= r/local/src/emacs/emacs-26.3/lisp/org/org-protocol /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-plantuml hides /usr= /local/src/emacs/emacs-26.3/lisp/org/ob-plantuml /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-sass hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-sass /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-element hides /usr= /local/src/emacs/emacs-26.3/lisp/org/org-element /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-J hides /usr/local/= src/emacs/emacs-26.3/lisp/org/ob-J /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-fortran hides /usr/= local/src/emacs/emacs-26.3/lisp/org/ob-fortran /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-table hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/ob-table /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox hides /usr/local/sr= c/emacs/emacs-26.3/lisp/org/ox /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-colview hides /usr= /local/src/emacs/emacs-26.3/lisp/org/org-colview /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-icalendar hides /us= r/local/src/emacs/emacs-26.3/lisp/org/ox-icalendar /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-scheme hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-scheme /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-core hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-core /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-src hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/org-src /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-awk hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-awk /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-timer hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/org-timer /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-ledger hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-ledger /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-latex hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/ob-latex /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-tangle hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-tangle /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-lob hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-lob /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-archive hides /usr= /local/src/emacs/emacs-26.3/lisp/org/org-archive /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-processing hides /u= sr/local/src/emacs/emacs-26.3/lisp/org/ob-processing /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-habit hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/org-habit /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-crypt hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/org-crypt /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-comint hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-comint /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org hides /usr/local/s= rc/emacs/emacs-26.3/lisp/org/org /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-ditaa hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/ob-ditaa /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-html hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ox-html /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-ascii hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/ox-ascii /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-install hides /usr= /local/src/emacs/emacs-26.3/lisp/org/org-install /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-coq hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-coq /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-attach hides /usr/= local/src/emacs/emacs-26.3/lisp/org/org-attach /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-footnote hides /us= r/local/src/emacs/emacs-26.3/lisp/org/org-footnote /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-haskell hides /usr/= local/src/emacs/emacs-26.3/lisp/org/ob-haskell /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-md hides /usr/local= /src/emacs/emacs-26.3/lisp/org/ox-md /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-vala hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-vala /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-texinfo hides /usr/= local/src/emacs/emacs-26.3/lisp/org/ox-texinfo /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-ctags hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/org-ctags /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-macro hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/org-macro /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-picolisp hides /usr= /local/src/emacs/emacs-26.3/lisp/org/ob-picolisp /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-js hides /usr/local= /src/emacs/emacs-26.3/lisp/org/ob-js /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-groovy hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-groovy /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-clock hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/org-clock /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-screen hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-screen /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-emacs-lisp hides /u= sr/local/src/emacs/emacs-26.3/lisp/org/ob-emacs-lisp /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-lilypond hides /usr= /local/src/emacs/emacs-26.3/lisp/org/ob-lilypond /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-macs hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/org-macs /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-loaddefs hides /us= r/local/src/emacs/emacs-26.3/lisp/org/org-loaddefs /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-python hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-python /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-shell hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/ob-shell /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-lisp hides /usr/loc= al/src/emacs/emacs-26.3/lisp/org/ob-lisp /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-faces hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/org-faces /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-pcomplete hides /u= sr/local/src/emacs/emacs-26.3/lisp/org/org-pcomplete /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-octave hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-octave /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-gnuplot hides /usr/= local/src/emacs/emacs-26.3/lisp/org/ob-gnuplot /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-abc hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/ob-abc /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/org-id hides /usr/loca= l/src/emacs/emacs-26.3/lisp/org/org-id /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-matlab hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ob-matlab /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ox-beamer hides /usr/l= ocal/src/emacs/emacs-26.3/lisp/org/ox-beamer /home/dieter/.emacs.d/elpa/org-plus-contrib-20200205/ob-ocaml hides /usr/lo= cal/src/emacs/emacs-26.3/lisp/org/ob-ocaml /home/dieter/.emacs.d/elpa/let-alist-1.0.6/let-alist hides /usr/local/src/e= macs/emacs-26.3/lisp/emacs-lisp/let-alist Features: (shadow emacsbug flow-fill canlock ibuf-ext ibuffer ibuffer-loaddefs cl-print mailalias bbdb-message sendmail sort gnus-cite smiley shr-color color shr svg dom mail-extr gnus-bcklg pp cus-edit cus-start cus-load skeleton autoload cal-iso cal-move tar-mode package-x wdired man novice gnus-async qp gnus-ml nndraft nnmh nnmbox utf-7 nnfolder bbdb-gnus bbdb-mua bbdb-com crm epa-file gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig nntp gnus-cache conf-mode mm-archive network-stream starttls url-cache package-recipe-mode package-build-badges package-build package-recipe term disp-table ehelp pulse flyspell view package-lint finder lisp-mnt checkdoc rect pcase flycheck subr-x ispell eieio-opt speedbar sb-image ezimage dframe help-fns radix-tree tmm term/xterm xterm apdl-mode align apdl-initialise apdl-process apdl-template apdl-keyword dired-aux time-stamp face-remap misearch multi-isearch sh-script smie executable cursor-sensor vc-mtn vc-hg vc-git diff-mode vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc vc-dispatcher imenu ess-r-mode ess-r-flymake flymake-proc flymake thingatpt ess-r-xref xref ess-trns ess-r-package ess-r-completion ess-roxy ess-r-syntax ess-rd hideshow ess-s-lang ess-help ess-mode ess-inf project ess-tracebug ess ess-utils ess-custom compile rx cl-extra help-mode icomplete cal-china lunar solar cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs appt diary-lib diary-loaddefs battery time server org-eldoc ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win gnus nnheader wid-edit ol-docview doc-view jka-compr image-mode ol-bbdb ol-w3m dired-x bbdb bbdb-site ox-koma-letter paren elec-pair pdf-loader ob-org ob-octave ob-latex ob-shell shell ob-calc calc-store calc-trail calc-ext calc calc-loaddefs calc-macs ob-R ob-python org-capture org-passwords org-ref org-ref-helm-bibtex org-ref-helm helm-utils helm-bibtex bibtex-completion filenotify biblio biblio-download biblio-dissemin biblio-ieee biblio-hal biblio-dblp biblio-crossref biblio-arxiv timezone biblio-doi biblio-core let-alist url-queue ido hl-line helm-net browse-url xml helm-help helm helm-source eieio-compat helm-multi-match helm-lib helm-config helm-easymenu async-bytecomp async org-ref-core warnings edmacro kmacro reftex-cite reftex reftex-loaddefs reftex-vars parsebib ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox org-ref-glossary org-ref-bibtex org-ref-citeproc org-element avl-tree generator message dired dired-loaddefs rfc822 mml mml-sec epa derived epg gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mailabbrev mail-utils gmm-utils mailheader key-chord hydra lv doi-utils org-ref-utils org-ref-pdf url-http tls gnutls url url-proxy url-privacy url-expand url-methods url-history mailcap url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-cookie url-domsuf url-util url-gw nsm rmc puny ol-bibtex org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color ring org-list org-faces org-entities noutline outline easy-mmode org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat advice org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs json map bibtex htmlize cl f s dash finder-inf info package easymenu epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 2291490 224766) (symbols 48 79361 56) (miscs 40 2040 2285) (strings 32 412282 32289) (string-bytes 1 28323888) (vectors 16 106492) (vector-slots 8 2463820 83458) (floats 8 1192 1079) (intervals 56 265189 2205) (buffers 992 117)) --=20 Best wishes H. Dieter Wilhelm Zwingenberg, Germany From unknown Thu Jun 19 16:24:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39609: 26.3; Packaging system: Package documentation in the *Help* buffer Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 27 Oct 2020 18:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39609 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: dieter@duenenhof-wilhelm.de (H. Dieter Wilhelm) Cc: 39609@debbugs.gnu.org Received: via spool by 39609-submit@debbugs.gnu.org id=B39609.16038215673936 (code B ref 39609); Tue, 27 Oct 2020 18:00:02 +0000 Received: (at 39609) by debbugs.gnu.org; 27 Oct 2020 17:59:27 +0000 Received: from localhost ([127.0.0.1]:45728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kXTFn-00011Q-1O for submit@debbugs.gnu.org; Tue, 27 Oct 2020 13:59:27 -0400 Received: from quimby.gnus.org ([95.216.78.240]:60022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kXTFl-000119-7z for 39609@debbugs.gnu.org; Tue, 27 Oct 2020 13:59:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=63B/jXa0mlw2ZqxI0jM1XfrqQpDzlUPuJLWfH0ZERlg=; b=M0gWl5Bg21uUQ6X1zIGl2oWRAW z1hKUHyzQ+qZgF4Mp7ethzC390KJJFYzSRiI5k0oNio/ddcXoURsscCzMEIlJvrX29o666lRRyLEV l439vaun7siZ8/MutGdbIs4lXkhBNbwJ6XplBK9OPDJjOVbMWR7ywLx3YuQNwj5qyGIs=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kXTFZ-00027S-VS; Tue, 27 Oct 2020 18:59:19 +0100 From: Lars Ingebrigtsen References: <86y2t4zy00.fsf@duenenhof-wilhelm.de> X-Now-Playing: Vladislav Delay, Sly Dunbar, Robbie Shakespeare's _500-PUSH-UP_: "(514)" Date: Tue, 27 Oct 2020 18:59:12 +0100 In-Reply-To: <86y2t4zy00.fsf@duenenhof-wilhelm.de> (H. Dieter Wilhelm's message of "Fri, 14 Feb 2020 21:59:11 +0100") Message-ID: <87tuuf1rf3.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: dieter@duenenhof-wilhelm.de (H. Dieter Wilhelm) writes: > The Elisp manual (GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ > Version 3.22.30) of 2019-12-14) states that a README file in the content > directory of a package will be used as a package des [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) dieter@duenenhof-wilhelm.de (H. Dieter Wilhelm) writes: > The Elisp manual (GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ > Version 3.22.30) of 2019-12-14) states that a README file in the content > directory of a package will be used as a package description (C-h P). > > Please check > > (info "(elisp) Multi-file Packages"). > > Yet this isn't working! By looking at other packages It seems that > there must be a file `PACKAGE-NAME-readme.txt' BELOW the content > directory to get a description in the package help. I tried `C-h P ada-mode RET' and got a *Help* buffer that included the README file for the ada-mode package, so I seem to be unable to reproduce this bug. Do you have a precise recipe to reproduce it, starting from "emacs -Q"? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Oct 27 13:59:33 2020 Received: (at control) by debbugs.gnu.org; 27 Oct 2020 17:59:33 +0000 Received: from localhost ([127.0.0.1]:45731 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kXTFt-00012B-96 for submit@debbugs.gnu.org; Tue, 27 Oct 2020 13:59:33 -0400 Received: from quimby.gnus.org ([95.216.78.240]:60036) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kXTFr-00011P-RE for control@debbugs.gnu.org; Tue, 27 Oct 2020 13:59:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=AZNwp3VOQrzxPPgno1mspTtyYChkAsi4NHtQz7DzIsw=; b=IijLkoSJW2ZwEg4H/mL8buge5r lnpPlEUfuyx/OkF0XxXz2+rw0msT8YpdLkI2PlFpQdEIoAalsbG41mg2FqMm7YunZDUivz2enMfut twxsFexz8MOfUQO1l2LtwzHAZqINogV8xtS7P7/loYAPEjMa03bkukacOjvEYNk4kHRc=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kXTFk-00027b-6E for control@debbugs.gnu.org; Tue, 27 Oct 2020 18:59:26 +0100 Date: Tue, 27 Oct 2020 18:59:23 +0100 Message-Id: <87sg9z1res.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #39609 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 39609 + moreinfo quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 39609 + moreinfo quit From unknown Thu Jun 19 16:24:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39609: 26.3; Packaging system: Package documentation in the *Help* buffer Resent-From: "H. Dieter Wilhelm" Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 24 Nov 2020 21:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39609 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo To: Lars Ingebrigtsen Cc: 39609@debbugs.gnu.org Received: via spool by 39609-submit@debbugs.gnu.org id=B39609.160625275612688 (code B ref 39609); Tue, 24 Nov 2020 21:20:02 +0000 Received: (at 39609) by debbugs.gnu.org; 24 Nov 2020 21:19:16 +0000 Received: from localhost ([127.0.0.1]:33241 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khfiW-0003IZ-AH for submit@debbugs.gnu.org; Tue, 24 Nov 2020 16:19:16 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:39969) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khfiT-0003IL-I7 for 39609@debbugs.gnu.org; Tue, 24 Nov 2020 16:19:14 -0500 Received: from ping ([92.116.139.50]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MBlpC-1kVXAl0wkW-00C9we; Tue, 24 Nov 2020 22:19:07 +0100 From: "H. Dieter Wilhelm" References: <86y2t4zy00.fsf@duenenhof-wilhelm.de> <87tuuf1rf3.fsf@gnus.org> Date: Tue, 24 Nov 2020 22:19:04 +0100 In-Reply-To: <87tuuf1rf3.fsf@gnus.org> (Lars Ingebrigtsen's message of "Tue, 27 Oct 2020 18:59:12 +0100") Message-ID: <86tutelagn.fsf@duenenhof-wilhelm.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:xL0chAIcZIFkc5c3NtJh7koZ0XRu6X63eX+sDQGRzZKpQWHpHMN 6eA0oajf3F/RYzqCN+magcq6oCF3g7GaBV6dht1ocNPh932OXB470FcO/g0Ac8jJvNd6GgS iBk0KPIBmauFcDdtQuC9Z/BB4V+63JG1cyDcYl5jaY3yWX9ugoaczLQifze7uOl1tgM24tY erXragvKtfiDj502+mTMA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:S3k4qzQZuNY=:VJmcGj41uV+BX6Kl4ckTOW F11Uao8YvmzLnGKpBVG5/SOu9ykYPuZQGRMWmV9jI/rmF13H0EuFw6/ia/55H2Ze+EZNES/x0 Nf0XhXLF/c8Hmg/zdL/+k8LQkbUXR83tvqA3exl/QEuP6haarE8+AvYLWf5YO6NQFp88Hr5dX jWOAM5rJJbzAuvCsAqa058SoLqmbPnulQ4WI5PJUgLshH2UTC90XPlADMKByHCkXKhpuN6V5h lRo37OWWtRSJ1CvucJrveOuHDZ+LeWVLZGi0yeXhdqGghLy7+4eR8Br9mniJPnoG8oyim+gKb 2wHdpRcru6Sz9l6/OwhGYpARYq+IHiEmDwGSFj7XiBrG/ESZqikguJJBx2D10JKHKb11WxD7m wNrmGf+aBBJZsZecc932XdJjCiIJdoUZlmiX73kA4fgBBnfuju7CqSLsdZ0hWP23WKXBtaaqu TtnT1mRiSQ== X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hello Lars thank you for looking into this! Lars Ingebrigtsen writes: > dieter@duenenhof-wilhelm.de (H. Dieter Wilhelm) writes: > >> The Elisp manual (GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ >> Version 3.22.30) of 2019-12-14) states that a README file in the content >> directory of a package will be used as a package description (C-h P). >> >> Please check >> >> (info "(elisp) Multi-file Packages"). >> >> Yet this isn't working! By looking at other packages It seems that >> there must be a file `PACKAGE-NAME-readme.txt' BELOW the content >> directory to get a description in the package help. > I tried `C-h P ada-mode RET' and got a *Help* buffer that included the > README file for the ada-mode package, so I seem to be unable to > reproduce this bug. > Do you have a precise recipe to reproduce it, starting from "emacs -Q"? I prepared a multi-file package for you. Under Emacs 26.3 or earlier you won't see any "long description" at all (unless you include a PACKAGE-NAME-readme.txt in the package archive). Under 27.1 it shows now the ;;; Commentary: section of the PACKAGE-NAME.el file. But NOT the content of the accompanying README! Please unpack the archive inform-1.4.tar into an empty DIRECTORY and install the package interactively with package-install-file pointing to the DIRECTORY. Thank you for your help Dieter --=-=-= Content-Type: application/x-tar Content-Disposition: attachment; filename=inform-1.4.tar Content-Transfer-Encoding: base64 aW5mb3JtLmVsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1 MQAwMDAxNzUxADAwMDAwMDQzNjIxADEzNjYwMzIxMTE2ADAxMjIxMwAgMAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGRpZXRlcgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAZGlldGVyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7 OzsgaW5mb3JtLmVsIC0tLSBMaW5rIHN5bWJvbHMgaW4gSW5mbyBidWZmZXJzIHRvIHRoZWlyIGhl bHAgZG9jdW1lbnRhdGlvbiAgLSotIGxleGljYWwtYmluZGluZzogdDsgLSotCgo7OyBDb3B5cmln aHQgKEMpIDIwMjAgIEguIERpZXRlciBXaWxoZWxtCgo7OyBBdXRob3I6IEguIERpZXRlciBXaWxo ZWxtIDxkaWV0ZXJAZHVlbmVuaG9mLXdpbGhlbG0uZGU+Cjs7IE1haW50YWluZXI6IEguIERpZXRl ciBXaWxoZWxtCjs7IFBhY2thZ2UtUmVxdWlyZXM6ICgoZW1hY3MgIjI1LjEiKSkKOzsgS2V5d29y ZHM6IGhlbHAsIGRvY3MsIGNvbnZlbmllbmNlCjs7IENyZWF0ZWQ6IDIwMjAtMDQKOzsgVmVyc2lv bjogMS40Cjs7IFVSTDogaHR0cHM6Ly9naXRodWIuY29tL2RpZXRlci13aWxoZWxtL2luZm9ybQoK OzsgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgo7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcwo7OyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUKOzsgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCjs7IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKOzsgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQo7 OyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgo7OyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo7 OyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlCjs7IDxodHRwczovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCgo7OzsgQ29tbWVudGFyeToKCjs7IFRoaXMgbGlicmFyeSBwcm92 aWRlcyBoeXBlcmxpbmtzIG9mIHN5bWJvbHMgKGZ1bmN0aW9ucywgdmFyaWFibGVzLAo7OyBmYWNl cykgd2l0aGluIEVtYWNzJyBJbmZvIHZpZXdlciB0byB0aGVpciBidWlsdGluIGhlbHAKOzsgZG9j dW1lbnRhdGlvbi4gIFRoaXMgbGlua2luZyBpcyBlbmFibGVkIGJ5IGluc3RhbGxpbmcgdGhlIHBh Y2thZ2UuCjs7IEluZm9ybSBhZGRzIC0gYXMgYW4gYXV0b2xvYWQgaW5zdHJ1Y3Rpb24gLSBhIGZ1 bmN0aW9uIHRvIHRoZSBob29rCjs7IGBJbmZvLXNlbGVjdGlvbi1ob29rJy4gIElmIHlvdSBkbyBu b3Qgd2FudCB0aGlzIGxpbmtpbmcgZmVhdHVyZSBhbnkKOzsgbG9uZ2VyIHlvdSBjYW4gc2V0IHRo ZSB2YXJpYWJsZSBgaW5mb3JtLW1ha2UteHJlZi1mbGFnJyB0byBuaWwgb3IKOzsganVzdCB1bmlu c3RhbGwgdGhlIHBhY2thZ2UgKGFuZCByZXN0YXJ0IEVtYWNzKS4KCjs7IFlvdSBjYW4gZm9sbG93 IHRoZSBhZGRpdGlvbmFsIGxpbmtzIHdpdGggdGhlIHVzdWFsIEluZm8KOzsga2V5YmluZGluZ3Mu ICBUaGUgY3VzdG9taXNhdGlvbiB2YXJpYWJsZQo7OyBgbW91c2UtMS1jbGljay1mb2xsb3dzLWxp bmsnIGlzIGluZmx1ZW5jaW5nIHRoZSBjbGlja2luZyBiZWhhdmlvcgo7OyAoYW5kIHRoZSB0b29s dGlwcykgb2YgdGhlIGxpbmtzLCB0aGUgdmFyaWFibGUncyBkZWZhdWx0IGlzIDQ1MAo7OyAobWls bGkgc2Vjb25kcykgc2V0dGluZyBpdCB0byBuaWwgbWVhbnMgb25seSBjbGlja2luZyB3aXRoIG1v dXNlLTIKOzsgaXMgZm9sbG93aW5nIHRoZSBsaW5rIChoaW50OiBEcmV3IEFkYW1zKS4KCjs7IFRo ZSBsaW5rIGNvbG9yIG9mIHN5bWJvbHMgLSByZWZlcmVuY2luZyB0aGVpciBidWlsdGluIGRvY3Vt ZW50YXRpb24KOzsgLSBpcyBkaXN0aW5jdCBmcm9tIGxpbmtzIHdoaWNoIGFyZSByZWZlcmVuY2lu ZyBmdXJ0aGVyIEluZm8KOzsgZG9jdW1lbnRhdGlvbi4gIFRoZSBoeXBlcmxpbmsgY29sb3IgaXMg Tk9UIGNoYW5naW5nIHdoZW4geW91IGFyZQo7OyB2aXNpdGluZyB0aGUgbGluayBhcyBpdCBoYXBw ZW5zIGZvciB0aGUgKkhlbHAqIGxpbmtzLgoKOzsgVGhlIGxpbmtpbmcgaXMgZG9uZSwgd2hlbiB0 aGUgc3ltYm9sIG5hbWVzIGluIHRleGluZm8KOzsgZG9jdW1lbnRhdGlvbnMgKGxpa2UgdGhlIEVt YWNzLSBhbmQgRWxpc3AgbWFudWFsKSBhcmUKCjs7IDEuIFF1b3RlZCBzeW1ib2wgbmFtZXMgbGlr ZSBgcXVvdGVkLXN5bWJvbCcgb3I6Cgo7OyAyLiBGdW5jdGlvbiBuYW1lcyBhcmUgcHJlZml4ZWQg YnkgTS14LCBmb3IgZXhhbXBsZSBNLXgKOzsgZnVuY3Rpb24tbmFtZSBvciBhcmUgcXVvdGVkIGFu ZCBwcmVmaXhlZCBsaWtlIGBNLXggZnVuY3Rpb24tbmFtZScuCgo7OyAzLiBGdW5jdGlvbiBuYW1l cyBhcHBlYXJpbmcgYmVoaW5kIHRoZSBmb2xsb3dpbmcgZm9ybXMsIHdoaWNoCjs7IG9jY3VyLCBm b3IgZXhhbXBsZSwgaW4gdGhlIEVsaXNwIG1hbnVhbDoKCjs7ICAgLS0gU3BlY2lhbCBGb3JtOiBm dW5jdGlvbi1uYW1lCjs7ICAgLS0gQ29tbWFuZDoKOzsgICAtLSBGdW5jdGlvbjoKOzsgICAtLSBN YWNybzoKCjs7IDQuIEFuZCB2YXJpYWJsZXMgbmFtZXMgYmVoaW5kIHRoZSBmb2xsb3dpbmcgdGV4 dDoKCjs7ICAgLS0gVXNlciBPcHRpb246IHZhcmlhYmxlLW5hbWUKOzsgICAtLSBWYXJpYWJsZToK Cjs7IEluZm9ybSBpcyBjaGVja2luZyBpZiB0aGUgSW5mbyBkb2N1bWVudHMgYXJlIHJlbGV2YW50 IEVsaXNwIGFuZAo7OyBFbWFjcyByZWxhdGVkIGZpbGVzIHRvIGF2b2lkIGZhbHNlIHBvc2l0aXZl cy4gIFBsZWFzZSBzZWUgdGhlCjs7IGN1c3RvbWl6YXRpb24gdmFyaWFibGUgYGluZm9ybS1ub25l LWVtYWNzLW9yLWVsaXNwLWRvY3VtZW50cycuCgo7OyBJbiBhbnkgY2FzZSwgYWxsIHN5bWJvbCBu YW1lcyBtdXN0IGJlIGtub3duIHRvIEVtYWNzLCBpLmUuIHRoZWlyCjs7IG5hbWVzIGFyZSBmb3Vu ZCBpbiB0aGUgdmFyaWFibGUgYG9iYXJyYXknLgoKOzsgVGhlIGNvZGUgcmV1c2VzIG1haW5seSBt ZWNoYW5pc21zIGZyb20gRW1hY3MnIGxpc3AvaGVscC1tb2RlLmVsCgo7OzsgQ2hhbmdlIExvZzoK Cjs7IDEuNDoKCjs7IEltcHJvdmluZyBhdXRvbG9hZGluZyBzbyBpbmZvcm0uZWwgaXMgbm90IGxv YWRlZCBpbW1lZGlhdGVseQoKOzsgQnVnZml4IGZvciBkaXN0cm9zIHdoaWNoIGhhdmUgbm8gc2Vw YXJhdGUgImVtYWNzIiBpbmZvIGRpcmVjdG9yeS4KOzsgQWRkaW5nIGEgZmFsbGJhY2sgdmFyaWFi bGUgb2YgZWxpc3Agb3IgZW1hY3MgZG9jdW1lbnRhdGlvbgoKOzsgMS4zOgoKOzsgSW5mb3JtIGlz IGNoZWNraW5nIGlmIHRoZSBJbmZvIGRvY3VtZW50cyBhcmUgcmVsZXZhbnQgRWxpc3AgYW5kCjs7 IEVtYWNzIHJlbGF0ZWQgZmlsZXMgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzLgoKOzsgMS4yOgoK OzsgTGluayBFbGlzcCBkZXNjcmlwdGlvbnMgb2Ygc3ltYm9scyB0byB0aGVpciBoZWxwIGRvY3Vt ZW50YXRpb24sCjs7IGxpa2UgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBleGFtcGxlOiAtLSBGdW5j dGlvbjogZXZhbCBmb3JtCgo7OyBEaXN0aW5ndWlzaCBjb2xvciBvZiB0ZXhpbmZvIGxpbmtzIChg bGluaycgdHlwZSkgYW5kIEhlbHAgbGlua3MKOzsgKGBmb250LWxvY2stZnVuY3Rpb24tbmFtZS1m YWNlJykKCjs7OyBUT0RPOgoKOzsgQ3VycmVudGx5IGluY29uc2lzdGVudCBsaW5rIGNvbG9ycyB0 byBoZWxwIGJ1ZmZlcnM6IEluICppbmZvKgo7OyBkaWZmZXJlbnQgYXMgaW4gKkhlbHAqIGJ1ZmZl cnMhCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7IERvZXMgdGhlIGZvbGxvd2luZyBiZWxvbmcgdG8gY3VzdG9t aXplLmVsPwoKOzsgR2VuZXJhbGlzZSBsaW5raW5nIHRvICJjdXN0b21pemF0aW9uIGJ1ZmZlcnMi IGZvciB0aGUgImVhc3kKOzsgY3VzdG9taXphdGlvbiIgaW5mbyBkb2N1bWVudGF0aW9uIHNlZSBh bHNvIHRoZSBjdXN0b21pemF0aW9uCjs7IHNlY3Rpb24gaW4gdGhlIGVsaXNwIG1hbnVhbAoKOzsg LSBkaXN0aW5ndWlzaCB0aGUgQ3VzdG9taXphdGlvbi1saW5rcyBmcm9tIEhlbHAtIGFuZCBJbmZv LWxpbmtzCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKCjs7OyBJZGVhczoKCjs7IExpbmsgdGhlIGhlbHAgYnVmZmVy cyBiYWNrIHRvIGhpZ2hlciBsZXZlbCBpbmZvIG1hbnVhbCBzdWJqZWN0cywKOzsgc2ltaWxhciB0 byBoZWxwLWZucysuZWwgZnJvbSBEcmV3IEFkYW1zLgoKOzsgVHdpY2UgY2xpY2tpbmcgb3IgUkVU dXJuaW5nIHJlbW92ZXMgKkhlbHAqIGJ1ZmZlciAoaWRlYTogRHJldwo7OyBBZGFtcykKCjs7IERp ZmZlcmVudCBjb2xvcnMgZm9yIGRpZmZlcmVudCBzeW1ib2wgdHlwZXMgKGlkZWE6IERyZXcgQWRh bXMpIHNlZQo7OyBwYWNrYWdlIGhlbHBmdWwgYW5kIGluZm8rIC8gaW5mby1jb2xvcnMgb24gTWVs cGEgYW5kIHNlZQo7OyBmb250LWxvY2suZWwgZm9yIGNvbW1vbiBmYWNlcy4KCjs7ICAtIERvIHdl IG5lZWQgdG8gaW5kaWNhdGUgYW4gYWxyZWFkeSB2aXNpdGVkIEhlbHAgbGluayB3aXRoIGEKOzsg ICAgZGlmZmVyZW50IGNvbG9yPwoKOzsgIC0gV291bGQgaXQgYmUgYmUgZ29vZCB0byBvdmVydGFr ZSBhbGwgY29sb3JzIG9mIHBhY2thZ2UKOzsgICAgImluZm8tY29sb3JzIj8KCjs7ICAtIERvIHdl IG5lZWQgdG8gZGlzdGluZ3Vpc2ggdGhlIGxpbmsgRk9OVFM/IE5vLCBkaWZmaWN1bHQgdG8gcmVh ZCEKCjs7IEJhY2sgLyBGb3J3YXJkIGJ1dHRvbiBpbiBoZWxwIGJ1ZmZlciAtIGJhY2sgdG8gaW5m byBidWZmZXIgb3IKOzsgcmVtYWluIGluIGhlbHAgbW9kZT8KCjs7IExpbmtpbmcgb2Ygc3RhbmRh cmQgc3ltYm9sIHByb3BlcnRpZXM/Cgo7OyAgLSAoaW5mbyAiKGVsaXNwKSBTdGFuZGFyZCBQcm9w ZXJ0aWVzIikKCjs7IEVsaXNwIG1hbnVhbCBleGFtcGxlczoKOzsgICAgICAgKHN5bWJvbC1uYW1l ICdjYXIpIC4uLiA/Cgo7OyBTaG9ydGVuaW5nIHRoZSB2ZXJib3NlIHRleGluZm8gVVJMcz8gIEJ1 dCBob3cgdG8gaGFuZGxlIHRoZSBjaGFuZ2VkCjs7IGluZGVudGF0aW9uPwoKOzs7IENvZGU6Cgoo cmVxdWlyZSAnaW5mbykJCQkJO3JlZHVuZGFudD8KKHJlcXVpcmUgJ2J1dHRvbikKKHJlcXVpcmUg J2NsLWxpYikKKHJlcXVpcmUgJ2hlbHAtbW9kZSkJCQk7cmVkdW5kYW50PwoKOzsgYWN0aXZhdGUg aW5mb3JtIHdpdGhvdXQgbWFudWFsbHkgbG9hZGluZyBpdC4gOy0pCjs7IDs7OyMjI2F1dG9sb2Fk IChyZXF1aXJlICdpbmZvcm0pCgo7OyB0aGlzIGlzIG92ZXJ3cml0aW5nIGxpc3AvaW5mby14cmVm LmVsJ3MgZGVmaW5pdGlvbiEgd2hpY2ggc29ydHMgaXQKOzsgaW4gJ2RvY3MhCihkZWZncm91cCBp bmZvLXhyZWYgbmlsCiAgIkN1c3RvbWlzYXRpb24gJ2luZm8teHJlZicgc3ViZ3JvdXAgb2YgaW5m by4KQ2hlY2sgZXh0ZXJuYWwgY3Jvc3MtcmVmZXJlbmNlcyBpbiBJbmZvIGRvY3VtZW50cyBhbmQg cHJvdmlkZQpoeXBlcmxpbmtzIGZyb20gc3ltYm9scyB0byB0aGVpciBoZWxwIGRvY3VtZW50YXRp b24uIgogIDpncm91cCAnaW5mbykKCjs7OyMjI2F1dG9sb2FkCihkZWZjdXN0b20gaW5mb3JtLW1h a2UteHJlZi1mbGFnIHQKICAiTm9uLW5pbCBtZWFucyBjcmVhdGUgc3ltYm9sIGxpbmtzIGluIGlu Zm8gYnVmZmVycy4iCiAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0IDp0YWcgIkNyZWF0ZSBsaW5rcyIg dCkKCQkgKGNvbnN0IDp0YWcgIkRvIG5vdCBsaW5rIiBuaWwpKQogIDpncm91cCAnaW5mby14cmVm KQoKKGRlZmNvbnN0IGluZm9ybS1lbWFjcy0yNi4zLWluZm8tZGlyLWNvbnRlbnQKICAnKCJhZGEt bW9kZS5pbmZvIiAiYXV0aC5pbmZvIiAiYXV0b3R5cGUuaW5mbyIgImJvdmluZS5pbmZvIiAiY2Fs Yy5pbmZvIgogICAgImNjbW9kZS5pbmZvIiAiY2wuaW5mbyIgImRidXMuaW5mbyIgImRpciIgImRp cmVkLXguaW5mbyIgImVicm93c2UuaW5mbyIKICAgICJlZGUuaW5mbyIgImVkaWZmLmluZm8iICJl ZHQuaW5mbyIgImVmYXEtdzMyLmluZm8iICJlZmFxLmluZm8iICJlaWVpby5pbmZvIgogICAgImVp bnRyLmluZm8iICJlbGlzcC5pbmZvIiAiZW1hY3MtZ251dGxzLmluZm8iICJlbWFjcy1taW1lLmlu Zm8iCiAgICAiZW1hY3MuaW5mbyIgImVwYS5pbmZvIiAiZXJjLmluZm8iICJlcnQuaW5mbyIgImVz aGVsbC5pbmZvIiAiZXVkYy5pbmZvIgogICAgImV3dy5pbmZvIiAiZmx5bWFrZS5pbmZvIiAiZm9y bXMuaW5mbyIgImdudXMuaW5mbyIgImh0bWxmb250aWZ5LmluZm8iCiAgICAiaWRsd2F2ZS5pbmZv IiAiaWRvLmluZm8iICJpbmZvLmluZm8iICJtYWlyaXgtZWwuaW5mbyIgIm1lc3NhZ2UuaW5mbyIK ICAgICJtaC1lLmluZm8iICJuZXdzdGlja2VyLmluZm8iICJueG1sLW1vZGUuaW5mbyIgIm9jdGF2 ZS1tb2RlLmluZm8iICJvcmcuaW5mbyIKICAgICJwY2wtY3ZzLmluZm8iICJwZ2cuaW5mbyIgInJj aXJjLmluZm8iICJyZWZ0ZXguaW5mbyIgInJlbWVtYmVyLmluZm8iCiAgICAic2FzbC5pbmZvIiAi c2MuaW5mbyIgInNlbWFudGljLmluZm8iICJzZXMuaW5mbyIgInNpZXZlLmluZm8iCiAgICAic210 cG1haWwuaW5mbyIgInNwZWVkYmFyLmluZm8iICJzcmVjb2RlLmluZm8iICJ0b2RvLW1vZGUuaW5m byIKICAgICJ0cmFtcC5pbmZvIiAidXJsLmluZm8iICJ2aGRsLW1vZGUuaW5mbyIgInZpcC5pbmZv IiAidmlwZXIuaW5mbyIKICAgICJ3aWRnZXQuaW5mbyIgIndpc2VudC5pbmZvIiAid29tYW4uaW5m byIpCiAgIkxpc3Qgb2YgZmlsZSBuYW1lcyBpbiBFbWFjcy0yNi0zJyBpbmZvLyBkaXJlY3Rvcnku IikKCihyZXF1aXJlICdjbC1zZXEpCjs7IEluZm8tZGlyZWN0b3ItbGlzdCBtdXN0IGJlIGluaXRp YWxpc2VkCihpbmZvLWluaXRpYWxpemUpCihkZWZ2YXIgaW5mb3JtLWVtYWNzLWluZm8tZGlyLWNv bnRlbnQKICA7OyAgKG1hcGNhciAnZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSA7J2ZpbGUtbmFtZS1z YW5zLWV4dGVuc2lvbgogIChsZXQgKChkaXIgKGNhciAoY2wtbWVtYmVyICJbXi5dZW1hY3MiIElu Zm8tZGlyZWN0b3J5LWxpc3QKCQkJICAgICA6dGVzdCAnc3RyaW5nLW1hdGNoLXApKSkpCiAgICA7 OyBJdCBzZWVtcyBzb21lIGRpc3Ryb3MgKGN5Z3dpbiBmb3Igc3VyZSkgZG9uJ3QgcHV0IEVtYWNz JwogICAgOzsgaW5mbyBkb2N1bWVudGF0aW9uIGluIHNlcGFyYXRlICJlbWFjcyIgZm9sZGVyLCBz byB3ZSBuZWVkCiAgICA7OyBhIHN0YXRpYyBmYWxsYmFjayBvZiBzdGFuZGFyZCBlbWFjcyAvIGVs aXNwIGRvY3VtZW50YXRpb24KICAgIChpZiBkaXIKCShkaXJlY3RvcnktZmlsZXMgZGlyCgkJCSA7 OyBkb24ndCBsaXN0ICIuIiBhbmQgIi4uIgoJCQkgbmlsICAiW14uXSQiKQogICAgICBpbmZvcm0t ZW1hY3MtMjYuMy1pbmZvLWRpci1jb250ZW50KSkKICAiQSBMaXN0IG9mIHN0YW5kYXJkIEVtYWNz IGFuZCBFbGlzcCBpbmZvIGZpbGUgc3RyaW5ncy4KVGhlc2UgZmlsZXMgYXJlIGNvbGxlY3RlZCBl aXRoZXIgZnJvbSBhIHNlcGFyYXRlIEVtYWNzIGluZm8vCmRpcmVjdG9yeSBvciAtIGlmIHRoaXMg ZG9lcyBub3QgZXhpc3QgLSBhcmUgY29waWVkIGZyb20gdGhlCnZhcmlhYmxlIGBpbmZvcm0tZW1h Y3MtMjYuMy1pbmZvLWRpci1jb250ZW50JyIpCgo7OyBUdXJuIGludG8gcmVnZXhwIGxpc3QgbmVj ZXNzYXJ5PyBTdGVmYW4KOzsgU3dpdGNoIHRvIGFsaXN0IHdpdGggZXhwbGFuYXRpb24gb2YgZmls ZSBuYW1lPwooZGVmY3VzdG9tIGluZm9ybS1ub25lLWVtYWNzLW9yLWVsaXNwLWRvY3VtZW50cwog ICcoImFhcm0yMDEyIiA7IFN0ZWZhbjogQWRhIG1hbnVhbCwgRWxwYSBhcmNoaXZlCiAgICAiYXJt MjAxMiIgIDsgU3RlZmFuOiBBZGEgbWFudWFsCiAgICAic2ljcCIgICA7IFQuVjogU3RydWN0dXJl IGFuZCBJbnRlcnByZXRhdGlvbiBvZiBDb21wdXRlciBQcm9ncmFtcywKCQkJCQk7IE1lbHBhIGFy Y2hpdmUKICAgICkKICAiTGlzdCBvZiBhbGwgbm9uZSBHTlUtRW1hY3Mgb3IgRWxpc3AgZG9jdW1l bnRhdGlvbi4KT3Igb3RoZXIgZG9jdW1lbnRzIG5vdCB0byBiZSBjaGVja2VkIGZvciBsaW5raW5n IHRvIHRoZWlyIGhlbHAKZG9jdW1lbnRhdGlvbi4gIFRoZSBsaXN0IG11c3QgY29udGFpbnMgb25s eSB0aGUgYmFzZSBuYW1lIG9mIHRoZQpmaWxlcyAod2l0aG91dCB0aGVpciBmaWxlIG5hbWUgZXh0 ZW5zaW9uIFwiLmluZm9cIikuIgogIDp0eXBlICcocmVwZWF0IHN0cmluZykKICA6Z3JvdXAgJ2lu Zm8teHJlZikKCihkZWZ1biBpbmZvcm0tY2hlY2stZG9jdS1wICgpCiAgIkNoZWNrIGlmIHRoZSBj dXJyZW50IGluZm8gZmlsZSBpcyByZWxldmFudCB0byBFbWFjcy4KVGhhdCBtZWFucyBgSW5mby1j dXJyZW50LWZpbGUnIGlzIGVpdGhlciBmb3VuZCBpbiBFbWFjcycgaW5mby8KZGlyZWN0b3J5IG9y IGluIGBwYWNrYWdlLXVzZXItZGlyJyBhbmQgaXMgbm90IGluY2x1ZGVkIGluIHRoZQpgaW5mb20t bm9uZS1lbWFjcy1vci1lbGlzcC1kb2N1bWVudHMnIGxpc3QuIgogIChsZXQqICgoaWZpbGUgSW5m by1jdXJyZW50LWZpbGUpCgkgKGlmaSAod2hlbiBpZmlsZQoJCShmaWxlLW5hbWUtc2Fucy1leHRl bnNpb24KCQkgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgaWZpbGUpKSkpCgkgKHBkaXIgKHdoZW4g KGJvdW5kcCAncGFja2FnZS11c2VyLWRpcikKCQkgKGV4cGFuZC1maWxlLW5hbWUKCQkgIHBhY2th Z2UtdXNlci1kaXIpKSkKCSAoaWZpbGVzIGluZm9ybS1lbWFjcy1pbmZvLWRpci1jb250ZW50KQoJ IChuZG9jdSBpbmZvcm0tbm9uZS1lbWFjcy1vci1lbGlzcC1kb2N1bWVudHMpKQogICAgKGFuZCBp ZmlsZQoJIChvciAoYXNzb2Mtc3RyaW5nIChjb25jYXQgaWZpICIuaW5mbyIpIGlmaWxlcykKCSAg ICAgOzsgaW5mbyBmaWxlcyBtaWdodCBiZSBhcmNoaXZlZCBvbiBkaXNjIQoJICAgICAoYXNzb2Mt c3RyaW5nIChjb25jYXQgaWZpICIuaW5mby5neiIpIGlmaWxlcykKCSAgICAgKHdoZW4gcGRpciAo c3RyaW5nLW1hdGNoIHBkaXIgaWZpbGUpKSkKCSAobm90IChhc3NvYy1zdHJpbmcgaWZpIG5kb2N1 KSkpKSkKCihkZWZ2YXIgZGVzY3JpYmUtc3ltYm9sLWJhY2tlbmRzKSAJO2Zyb20gaGVscC1tb2Rl LmVsCihkZWZ2YXIgaGVscC14cmVmLWZvbGxvd2luZykJCTtkaXRvCgo7OyBiZWxvdyBkZWZjdXN0 b20gdG9nZ2xlcyB0aGUgY29tcGxldGUgbGlua2luZyBwcm9jZXNzCjs7OyMjI2F1dG9sb2FkCih3 aGVuIGluZm9ybS1tYWtlLXhyZWYtZmxhZwogIChhZGQtaG9vayAnSW5mby1zZWxlY3Rpb24taG9v ayAnaW5mb3JtLW1ha2UteHJlZnMpKQoKKGRlZmZhY2UgaW5mb3JtLWNvbG9yCiAgJygodCAoOmlu aGVyaXQgZm9udC1sb2NrLWRvYy1mYWNlCgkJIDs7IGZvbnQtbG9jay1wcmVwcm9jZXNzb3ItZmFj ZSA7IHNpbWlsYXIgdG8gbGluayBmYWNlIChkZWZhdWx0KQoJCSA7OyBmb250LWxvY2stYnVpbHRp bi1mYWNlIDsgc2ltaWxhciAoZGVmYXVsdCBFbWFjcykKCQkgOzsgZm9udC1sb2NrLWZ1bmN0aW9u LW5hbWUtZmFjZSA7IHNpbWlsYXIgKGRlZmF1bHQpCgkJIDs7IEluZm8teHJlZi1mYWNlCgkJICkp KQogICJGYWNlIGZvciB0aGUgYHN5bWJvbCcgcmVmZXJlbmNlIGl0ZW1zIGluIGBpbmZvJyBub2Rl cy4iCiAgOmdyb3VwICdpbmZvLWNvbG9ycykKCjs7IEJ1dHRvbiB0eXBlcwoKKGRlZmluZS1idXR0 b24tdHlwZSAnaW5mb3JtLXhyZWYKICAnbGluayB0CQkJICAgO2ZvciBJbmZvLW5leHQtcmVmZXJl bmNlLW9yLWxpbmsKICAnZm9sbG93LWxpbmsgdAogICdmYWNlICdpbmZvcm0tY29sb3IKICAnYWN0 aW9uICMnaW5mb3JtLWJ1dHRvbi1hY3Rpb24pCgooZGVmaW5lLWJ1dHRvbi10eXBlICdpbmZvcm0t ZnVuY3Rpb24KICA6c3VwZXJ0eXBlICdpbmZvcm0teHJlZgogICdpbmZvcm0tZnVuY3Rpb24gJ2Rl c2NyaWJlLWZ1bmN0aW9uCiAgJ2luZm9ybS1lY2hvIChwdXJlY29weSAibW91c2UtMiwgUkVUOiBk ZXNjcmliZSB0aGlzIGZ1bmN0aW9uIikpCgooZGVmaW5lLWJ1dHRvbi10eXBlICdpbmZvcm0tdmFy aWFibGUKICA6c3VwZXJ0eXBlICdpbmZvcm0teHJlZgogICdpbmZvcm0tZnVuY3Rpb24gJ2Rlc2Ny aWJlLXZhcmlhYmxlCiAgJ2luZm9ybS1lY2hvIChwdXJlY29weSAibW91c2UtMiwgUkVUOiBkZXNj cmliZSB0aGlzIHZhcmlhYmxlIikpCgooZGVmaW5lLWJ1dHRvbi10eXBlICdpbmZvcm0tZmFjZQog IDpzdXBlcnR5cGUgJ2luZm9ybS14cmVmCiAgJ2luZm9ybS1mdW5jdGlvbiAnZGVzY3JpYmUtZmFj ZQogICdpbmZvcm0tZWNobyAocHVyZWNvcHkgIm1vdXNlLTIsIFJFVDogZGVzY3JpYmUgdGhpcyBm YWNlIikpCgooZGVmaW5lLWJ1dHRvbi10eXBlICdpbmZvcm0tc3ltYm9sCiAgOnN1cGVydHlwZSAn aW5mb3JtLXhyZWYKICAnaW5mb3JtLWZ1bmN0aW9uICMnZGVzY3JpYmUtc3ltYm9sCiAgJ2luZm9y bS1lY2hvIChwdXJlY29weSAibW91c2UtMiwgUkVUOiBkZXNjcmliZSB0aGlzIHN5bWJvbCIpKQoK KGRlZmluZS1idXR0b24tdHlwZSAnaW5mb3JtLWZ1bmN0aW9uLWRlZgogIDpzdXBlcnR5cGUgJ2lu Zm9ybS14cmVmCiAgJ2luZm9ybS1mdW5jdGlvbiAobGFtYmRhIChmdW4gJm9wdGlvbmFsIGZpbGUg dHlwZSkKCQkgICAgIChvciBmaWxlCgkJCSAoc2V0cSBmaWxlIChmaW5kLWxpc3Atb2JqZWN0LWZp bGUtbmFtZSBmdW4gdHlwZSkpKQoJCSAgICAgKGlmIChub3QgZmlsZSkKCQkJIChtZXNzYWdlICJV bmFibGUgdG8gZmluZCBkZWZpbmluZyBmaWxlIikKCQkgICAgICAgKHJlcXVpcmUgJ2ZpbmQtZnVu YykKCQkgICAgICAgKHdoZW4gKGVxIGZpbGUgJ0Mtc291cmNlKQoJCQkgKHNldHEgZmlsZQoJCQkg ICAgICAgKGhlbHAtQy1maWxlLW5hbWUgKGluZGlyZWN0LWZ1bmN0aW9uIGZ1bikgJ2Z1bikpKQoJ CSAgICAgICA7OyBEb24ndCB1c2UgZmluZC1mdW5jdGlvbi1ub3NlbGVjdCBiZWNhdXNlIGl0IGZv bGxvd3MKCQkgICAgICAgOzsgYWxpYXNlcyAod2hpY2ggZmFpbHMgZm9yIGJ1aWx0LWluIGZ1bmN0 aW9ucykuCgkJICAgICAgIChsZXQgKChsb2NhdGlvbgoJCQkgICAgICAoZmluZC1mdW5jdGlvbi1z ZWFyY2gtZm9yLXN5bWJvbCBmdW4gdHlwZSBmaWxlKSkpCgkJCSAocG9wLXRvLWJ1ZmZlciAoY2Fy IGxvY2F0aW9uKSkKCQkJIChydW4taG9va3MgJ2ZpbmQtZnVuY3Rpb24tYWZ0ZXItaG9vaykKCQkJ IChpZiAoY2RyIGxvY2F0aW9uKQoJCQkgICAgIChnb3RvLWNoYXIgKGNkciBsb2NhdGlvbikpCgkJ CSAgIChtZXNzYWdlICJVbmFibGUgdG8gZmluZCBsb2NhdGlvbiBpbiBmaWxlIikpKSkpCiAgJ2lu Zm9ybS1lY2hvIChwdXJlY29weSAibW91c2UtMiwgUkVUOiBmaW5kIGZ1bmN0aW9uJ3MgZGVmaW5p dGlvbiIpKQoKOzsgRnVuY3Rpb25zCgooZGVmdW4gaW5mb3JtLWJ1dHRvbi1hY3Rpb24gKGJ1dHRv bikKICAiQ2FsbCBCVVRUT04ncyBoZWxwIGZ1bmN0aW9uLiIKICAoaW5mb3JtLWRvLXhyZWYgbmls CgkJICAoYnV0dG9uLWdldCBidXR0b24gJ2luZm9ybS1mdW5jdGlvbikKCQkgIChidXR0b24tZ2V0 IGJ1dHRvbiAnaW5mb3JtLWFyZ3MpKSkKCgooZGVmdW4gaW5mb3JtLWRvLXhyZWYgKF9wb3MgZnVu Y3Rpb24gYXJncykKICAiQ2FsbCB0aGUgaGVscCBjcm9zcy1yZWZlcmVuY2UgZnVuY3Rpb24gRlVO Q1RJT04gd2l0aCBhcmdzIEFSR1MuClRoaW5ncyBhcmUgc2V0IHVwIHByb3Blcmx5IHNvIHRoYXQg dGhlIHJlc3VsdGluZyBgaGVscC1idWZmZXInIGhhcwphIHByb3BlciBbYmFja10gYnV0dG9uLiIK ICA7OyBUaGVyZSBpcyBhIHJlZmVyZW5jZSBhdCBwb2ludC4gIEZvbGxvdyBpdC4KICAobGV0ICgo aGVscC14cmVmLWZvbGxvd2luZyBuaWwpKQogICAgKGFwcGx5CiAgICAgZnVuY3Rpb24gKGlmIChl cSBmdW5jdGlvbiAnaW5mbykKCQkgIChhcHBlbmQgYXJncyAobGlzdCAoZ2VuZXJhdGUtbmV3LWJ1 ZmZlci1uYW1lICIqaW5mbyoiKSkpCgkJYXJncykpKSkKCihkZWZ1biBpbmZvcm0teHJlZi1idXR0 b24gKG1hdGNoLW51bWJlciB0eXBlICZyZXN0IGFyZ3MpCiAgIk1ha2UgYSBoeXBlcmxpbmsgZm9y IGNyb3NzLXJlZmVyZW5jZSB0ZXh0IHByZXZpb3VzbHkgbWF0Y2hlZC4KTUFUQ0gtTlVNQkVSIGlz IHRoZSBzdWJleHByZXNzaW9uIG9mIGludGVyZXN0IGluIHRoZSBsYXN0IG1hdGNoZWQKcmVnZXhw LiAgVFlQRSBpcyB0aGUgdHlwZSBvZiBidXR0b24gdG8gdXNlLiAgQW55IHJlbWFpbmluZyBhcmd1 bWVudHMgYXJlCnBhc3NlZCB0byB0aGUgYnV0dG9uJ3MgaW5mb3JtLWZ1bmN0aW9uIHdoZW4gaXQg aXMgaW52b2tlZC4KU2VlIGBpbmZvcm0tbWFrZS14cmVmcycgRG9uJ3QgZm9yZ2V0IEFSR1MuIiA7 IC1UT0RPLQogIDs7IERvbid0IG11bmcgcHJvcGVydGllcyB3ZSd2ZSBhZGRlZCBzcGVjaWFsbHkg aW4gc29tZSBpbnN0YW5jZXMuCiAgKHVubGVzcyAoYnV0dG9uLWF0IChtYXRjaC1iZWdpbm5pbmcg bWF0Y2gtbnVtYmVyKSkKICAgIDs7IChtZXNzYWdlICJDcmVhdGluZyBidXR0b246ICVzLiIgYXJn cykKICAgIChtYWtlLXRleHQtYnV0dG9uIChtYXRjaC1iZWdpbm5pbmcgbWF0Y2gtbnVtYmVyKQog ICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLWVuZCBtYXRjaC1udW1iZXIpCiAgICAgICAgICAg ICAgICAgICAgICAndHlwZSB0eXBlICdpbmZvcm0tYXJncyBhcmdzKSkpCgooZGVmY29uc3QgaW5m b3JtLXhyZWYtc3ltYm9sLXJlZ2V4cAogIChwdXJlY29weSAoY29uY2F0ICJcXChcXDxcXChcXCh2 YXJpYWJsZVxcfG9wdGlvblxcKVxcfCIgIDsgTGluayB0byB2YXIKICAgICAgICAgICAgICAgICAg ICAiXFwoZnVuY3Rpb25cXHxjb21tYW5kXFx8Y2FsbFxcKVxcfCIgICA7IExpbmsgdG8gZnVuY3Rp b24KICAgICAgICAgICAgICAgICAgICAiXFwoZmFjZVxcKVxcfCIJCQkgICA7IExpbmsgdG8gZmFj ZQogICAgICAgICAgICAgICAgICAgICJcXChzeW1ib2xcXHxwcm9ncmFtXFx8cHJvcGVydHlcXClc XHwiIDsgRG9uJ3QgbGluawogICAgICAgICAgICAgICAgICAgICJcXChzb3VyY2UgXFwoPzpjb2Rl IFxcKT9cXCg/Om9mXFx8Zm9yXFwpXFwpXFwpIgogICAgICAgICAgICAgICAgICAgICJbIFx0XG5d K1xcKT8iCiAgICAgICAgICAgICAgICAgICAgOzsgTm90ZSBzdGFydGluZyB3aXRoIHdvcmQtc3lu dGF4IGNoYXJhY3RlcjoKICAgICAgICAgICAgICAgICAgICAiWydg4oCYXVxcKFxcc3dcXChcXHN3 XFx8XFxzX1xcKStcXHxgXFwpWyfigJldIikpCiAgIlJlZ2V4cCBtYXRjaGluZyBkb2Mgc3RyaW5n IHJlZmVyZW5jZXMgdG8gc3ltYm9scy4KClRoZSB3b3JkcyBwcmVjZWRpbmcgdGhlIHF1b3RlZCBz eW1ib2wgY2FuIGJlIHVzZWQgaW4gZG9jIHN0cmluZ3MgdG8KZGlzdGluZ3Vpc2ggcmVmZXJlbmNl cyB0byB2YXJpYWJsZXMsIGZ1bmN0aW9ucyBhbmQgc3ltYm9scy4iKQoKOzs7IyMjYXV0b2xvYWQK KGRlZnVuIGluZm9ybS1tYWtlLXhyZWZzICgmb3B0aW9uYWwgYnVmZmVyKQogICJQYXJzZSBhbmQg aHlwZXJsaW5rIGRvY3VtZW50YXRpb24gY3Jvc3MtcmVmZXJlbmNlcyBpbiB0aGUgZ2l2ZW4gQlVG RkVSLgoKRmluZCBjcm9zcy1yZWZlcmVuY2UgaW5mb3JtYXRpb24gaW4gYSBidWZmZXIgYW5kIGFj dGl2YXRlIHN1Y2ggY3Jvc3MKcmVmZXJlbmNlcyBmb3Igc2VsZWN0aW9uIHdpdGggYGhlbHAtZm9s bG93Jy4gIENyb3NzLXJlZmVyZW5jZXMgaGF2ZQp0aGUgY2Fub25pY2FsIGZvcm0gYC4uLicgIGFu ZCB0aGUgdHlwZSBvZiByZWZlcmVuY2UgbWF5IGJlCmRpc2FtYmlndWF0ZWQgYnkgdGhlIHByZWNl ZGluZyB3b3JkKHMpIHVzZWQgaW4KYGluZm9ybS14cmVmLXN5bWJvbC1yZWdleHAnLgoKRnVuY3Rp b24gbmFtZXMgYXJlIGFsc28gcHJlZml4ZWQgYnkgXCJNLXhcIiwgZm9yIGV4YW1wbGUgXCJNLXgK ZnVuY3Rpb24tbmFtZVwiIG9yIGFyZSBxdW90ZWQgYW5kIHByZWZpeGVkIGxpa2UgYE0teApmdW5j dGlvbi1uYW1lJy4KCkFsc28gRnVuY3Rpb24gbmFtZXMgYXBwZWFyaW5nIGJlaGluZCB0aGUgZm9s bG93aW5nIGZvcm1zLCB3aGljaApvY2N1ciwgZm9yIGV4YW1wbGUsIGluIHRoZSBFbGlzcCBtYW51 YWw6CgogLS0gU3BlY2lhbCBGb3JtOiBmdW5jdGlvbi1uYW1lCiAtLSBDb21tYW5kOgogLS0gRnVu Y3Rpb246CiAtLSBNYWNybzoKCkFuZCB2YXJpYWJsZXMgbmFtZXMgYmVoaW5kIHRoZSBmb2xsb3dp bmcgdGV4dDoKCiAtLSBVc2VyIE9wdGlvbjogdmFyaWFibGUtbmFtZQogLS0gVmFyaWFibGU6CgpG YWNlcyBvbmx5IGdldCBjcm9zcy1yZWZlcmVuY2VkIGlmIHByZWNlZGVkIG9yIGZvbGxvd2VkIGJ5 IHRoZQp3b3JkIGBmYWNlJy4gIFZhcmlhYmxlcyB3aXRob3V0IHZhcmlhYmxlIGRvY3VtZW50YXRp b24gZG8gbm90IGdldApjcm9zcy1yZWZlcmVuY2VkLCB1bmxlc3MgcHJlY2VkZWQgYnkgdGhlIHdv cmQgYHZhcmlhYmxlJyBvcgpgb3B0aW9uJy4iCiAgKGludGVyYWN0aXZlICJiIikKICAod2hlbiAo aW5mb3JtLWNoZWNrLWRvY3UtcCkKICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChvciBidWZmZXIg KGN1cnJlbnQtYnVmZmVyKSkKICAgICAgKHNhdmUtZXhjdXJzaW9uCgkoZ290by1jaGFyIChwb2lu dC1taW4pKQoJOzsgU2tpcCB0aGUgaGVhZGVyLXR5cGUgaW5mbywgdGhvdWdoIGl0IG1pZ2h0IGJl IHVzZWZ1bCB0byBwYXJzZQoJOzsgaXQgYXQgc29tZSBzdGFnZSAoZS5nLiAiZnVuY3Rpb24gaW4g YGxpYnJhcnknIikuCgk7OyAgICAgIChmb3J3YXJkLXBhcmFncmFwaCkKCSh3aXRoLXNpbGVudC1t b2RpZmljYXRpb25zCTtmcm9tIFN0ZWZhbgoJICAobGV0ICg7KHN0YWIgKHN5bnRheC10YWJsZSkp CgkJKGNhc2UtZm9sZC1zZWFyY2ggdCkKCQkoaW5oaWJpdC1yZWFkLW9ubHkgdCkpCgkgICAgKHdp dGgtc3ludGF4LXRhYmxlIGVtYWNzLWxpc3AtbW9kZS1zeW50YXgtdGFibGUKCSAgICAgIDs7IFF1 b3RlZCBzeW1ib2xzCgkgICAgICAoc2F2ZS1leGN1cnNpb24KCQkod2hpbGUgKHJlLXNlYXJjaC1m b3J3YXJkIGluZm9ybS14cmVmLXN5bWJvbC1yZWdleHAgbmlsIHQpCgkJICAobGV0KiAoKGRhdGEg KG1hdGNoLXN0cmluZyA4KSkKCQkJIChzeW0gKGludGVybi1zb2Z0IGRhdGEpKSkKCQkgICAgKGlm IHN5bQoJCQkoY29uZAoJCQkgKChtYXRjaC1zdHJpbmcgMykgOyBgdmFyaWFibGUnICZjCgkJCSAg KGFuZCAob3IgKGJvdW5kcCBzeW0pIDsgYHZhcmlhYmxlJyBkb2Vzbid0IGVuc3VyZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBpdCdzIGFjdHVhbGx5IGJvdW5kCgkJ CQkgICAoZ2V0IHN5bSAndmFyaWFibGUtZG9jdW1lbnRhdGlvbikpCgkJCSAgICAgICAoaW5mb3Jt LXhyZWYtYnV0dG9uIDggJ2luZm9ybS12YXJpYWJsZSBzeW0pKSkKCQkJICgobWF0Y2gtc3RyaW5n IDQpIDsgYGZ1bmN0aW9uJyAmYwoJCQkgIChhbmQgKGZib3VuZHAgc3ltKSA7IHNpbWlsYXJseQoJ CQkgICAgICAgKGluZm9ybS14cmVmLWJ1dHRvbiA4ICdpbmZvcm0tZnVuY3Rpb24gc3ltKSkpCgkJ CSAoKG1hdGNoLXN0cmluZyA1KSA7IGBmYWNlJwoJCQkgIChhbmQgKGZhY2VwIHN5bSkKCQkJICAg ICAgIChpbmZvcm0teHJlZi1idXR0b24gOCAnaW5mb3JtLWZhY2Ugc3ltKSkpCgkJCSAoKG1hdGNo LXN0cmluZyA2KSkgOyBkbyBub3RoaW5nIGZvcgoJCQkJCSAgICA7IGBzeW1ib2wnLGBwcm9ncmFt JyxgcHJvcGVydHknCgkJCSAoKG1hdGNoLXN0cmluZyA3KSA7IHNvdXJjZSBjb2RlCgkJCSAgKGlu Zm9ybS14cmVmLWJ1dHRvbiA4ICdpbmZvcm0tZnVuY3Rpb24tZGVmIHN5bSkpCgkJCSAoKGNsLXNv bWUgKGxhbWJkYSAoeCkgKGZ1bmNhbGwgKG50aCAxIHgpIHN5bSkpCgkJCQkgICBkZXNjcmliZS1z eW1ib2wtYmFja2VuZHMpCgkJCSAgKGluZm9ybS14cmVmLWJ1dHRvbiA4ICdpbmZvcm0tc3ltYm9s IHN5bSkpKSkpKSkKCgkgICAgOzsgKGluZm8gIihlbGlzcCkgRXZhbCIpCgkgICAgOzsgRWxpc3Ag bWFudWFsICAgICAgLS0gU3BlY2lhbCBGb3JtOgoJICAgIDs7ICAgICAgICAgICAgICAgICAgIC0t IENvbW1hbmQ6CgkgICAgOzsgICAgICAgICAgICAgICAgICAgLS0gRnVuY3Rpb246IGZ1bmN0aW9u LW5hbWUgZnVuY3Rpb24KCSAgICA7OyAgICAgICAgICAgICAgICAgICAtLSBNYWNybzoKCSAgICAo c2F2ZS1leGN1cnNpb24KCSAgICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQKCQkgICAgICAi LS0gXFwoU3BlY2lhbCBGb3JtOlxcfENvbW1hbmQ6XFx8RnVuY3Rpb246XFx8TWFjcm86XFwpICIK CQkgICAgICBuaWwgdCkKCQkobG9va2luZy1hdCAiXFwoXFxzd1xcfFxcc19cXCkrIikKCQkobGV0 ICgoc3ltIChpbnRlcm4tc29mdCAobWF0Y2gtc3RyaW5nIDApKSkpCgkJICAoaWYgKGZib3VuZHAg c3ltKQoJCSAgICAgIChpbmZvcm0teHJlZi1idXR0b24gMCAnaW5mb3JtLWZ1bmN0aW9uIHN5bSkp KSkpCgoJICAgIDs7ICAgICAgICAgICAgICAtLSBVc2VyIE9wdGlvbjoKCSAgICA7OyAgICAgICAg ICAgICAgLS0gVmFyaWFibGU6IHZhcmlhYmxlLW5hbWUKCSAgICAoc2F2ZS1leGN1cnNpb24KCSAg ICAgICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQKCQkgICAgICAiLS0gXFwoVXNlciBPcHRpb246 XFx8VmFyaWFibGU6XFwpICIKCQkgICAgICBuaWwgdCkKCQkobG9va2luZy1hdCAiXFwoXFxzd1xc fFxcc19cXCkrIikKCQkobGV0ICgoc3ltIChpbnRlcm4tc29mdCAobWF0Y2gtc3RyaW5nIDApKSkp CgkJICAoaWYgKGJvdW5kcCBzeW0pCgkJICAgICAgKGluZm9ybS14cmVmLWJ1dHRvbiAwICdpbmZv cm0tdmFyaWFibGUgc3ltKSkpKSkKCgkgICAgOzsgTS14IHByZWZpeGVkIGZ1bmN0aW9ucwoJICAg IChzYXZlLWV4Y3Vyc2lvbgoJICAgICAgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZAoJCSAgICAg IDs7IEFzc3VtZSBjb21tYW5kIG5hbWUgaXMgb25seSB3b3JkIGFuZCBzeW1ib2wKCQkgICAgICA7 OyBjaGFyYWN0ZXJzIHRvIGdldCB0aGluZ3MgbGlrZSBgdXNlIE0teCBmb28tPmJhcicuCgkJICAg ICAgOzsgQ29tbWFuZCByZXF1aXJlZCB0byBlbmQgd2l0aCB3b3JkIGNvbnN0aXR1ZW50CgkJICAg ICAgOzsgdG8gYXZvaWQgYC4nIGF0IGVuZCBvZiBhIHNlbnRlbmNlLgoJCSAgICAgIDs7ICJcXDxN LXhcXHMtK1xcKFxcc3dcXChcXHN3XFx8XFxzX1xcKSpcXHN3XFwpIiBuaWwgdCkKCQkgICAgICA7 OyBpbmNsdWRlIE0teCBhbmQgcXVvdGVzCgkJICAgICAgIlsnYOKAmF0/TS14XFxzLSpcbj9cXChc XHN3XFwoXFxzd1xcfFxcc19cXCkqXFxzd1xcKVsn4oCZXT8iIG5pbCB0KQoJCShsZXQgKChzeW0g KGludGVybi1zb2Z0IChtYXRjaC1zdHJpbmcgMSkpKSkKCQkgIDs7IChtZXNzYWdlICJmb3VuZCAl cyIgc3ltKQoJCSAgKGlmIChmYm91bmRwIHN5bSkKCQkgICAgICAoaW5mb3JtLXhyZWYtYnV0dG9u IDEgJ2luZm9ybS1mdW5jdGlvbiBzeW0pKSkpKQoKCSAgICA7OyBjdXN0b21pemF0aW9uIGxpbmtz CgkgICAgKHNhdmUtZXhjdXJzaW9uCgkgICAgICAobGV0ICgoY0ZpbGUgIEluZm8tY3VycmVudC1m aWxlKQoJCSAgICAoY05vZGUgSW5mby1jdXJyZW50LW5vZGUpKQoJCSh3aGVuIChhbmQgY0ZpbGUK CQkJICAgKHN0cmluZz0gImVtYWNzIiAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBjRmlsZSkpKQoJ CSAgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZAoJCQkgOzsgYmxhCgkJCSAgIlsnYOKAmF1cXChN LXhbIFxuXStcXCk/XFwoXFwoXFxzd1xcfFxcc19cXCkrXFwpLipcbi4qXFwoY3VzdG9taXphdGlv biBidWZmZXJcXCkiCgkJCSAgbmlsIHQpCgkJICAgIChsZXQgKChzeW0gKGludGVybi1zb2Z0ICht YXRjaC1zdHJpbmcgMikpKSkKCQkgICAgICAobWVzc2FnZSAiZm91bmQgMiAlcyIgc3ltKQoJCSAg ICAgIChtZXNzYWdlICJmb3VuZCA0ICVzIiAobWF0Y2gtc3RyaW5nIDQpKQoJCSAgICAgIDs7IChp ZiAoZmJvdW5kcCBzeW0pCgkJICAgICAgOzsgCSAgKGluZm9ybS14cmVmLWJ1dHRvbiA0ICdpbmZv cm0tZnVuY3Rpb24gc3ltKSkpCgkJICAgICkpCgkJICAobWVzc2FnZSAibm9kZSBuYW1lOiAlcywg ZmlsZSBuYW1lOiAlcyIKCQkJICAgY05vZGUgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgY0ZpbGUp KSkpKQoJICAgICkpKSkpKSkKCgoocHJvdmlkZSAnaW5mb3JtKQo7OzsgaW5mb3JtLmVsIGVuZHMg aGVyZQoKOzsgTG9jYWwgVmFyaWFibGVzOgo7OyBtb2RlOiBvdXRsaW5lLW1pbm9yCjs7IGluZGlj YXRlLWVtcHR5LWxpbmVzOiB0Cjs7IHNob3ctdHJhaWxpbmctd2hpdGVzcGFjZTogdAo7OyB3b3Jk LXdyYXA6IHQKOzsgdGltZS1zdGFtcC1hY3RpdmU6IHQKOzsgdGltZS1zdGFtcC1mb3JtYXQ6ICIl OnktJTAybS0lMDJkIgo7OyBFbmQ6CgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABSRUFETUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAMDAwMDY2NAAwMDAxNzUxADAwMDE3NTEAMDAwMDAwMDA0MDEAMTM3NTcwMjIzNzQAMDEx MjYxACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAA ZGlldGVyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkaWV0ZXIAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAEluZm9ybSBpcyBhIHBhY2thZ2UgZm9yIEdOVS1FbWFjcyBpbiB0 aGUgc3Bpcml0IG9mIHRoZSBleHRlbnNpYmxlLApjdXN0b21pc2FibGUsIHNlbGYtZG9jdW1lbnRp bmcsIHJlYWwtdGltZSBkaXNwbGF5IGVkaXRvci4KCkl0IHByb3ZpZGVzIGxpbmtzIGZyb20gZWxp c3Agc3ltYm9scyAocXVvdGVkIGZ1bmN0aW9ucywgdmFyaWFibGVzIGFuZApmb250cykgaW4gR251 LUVtYWNzIEluZm8gdmlld2VyIHRvIHRoZWlyIGhlbHAgZG9jdW1lbnRhdGlvbi4KAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAaW5mb3JtLXBrZy5lbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAADAwMDA2NDQAMDAwMTc1MQAwMDAxNzUxADAwMDAwMDAwNTU2ADEzNzU3MDI0NzU3ADAxMzAx NAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGRp ZXRlcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGlldGVyAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAoZGVmaW5lLXBhY2thZ2UgImluZm9ybSIgIjEuNCIgIlN5bWJvbCBs aW5rcyBpbiBJbmZvIGJ1ZmZlcnMgdG8gdGhlaXIgaGVscCBkb2N1bWVudGF0aW9uLiIKICAnKChl bWFjcyAiMjUuMSIpKQo7OyAgOmtleXdvcmRzCjs7ICAnKCJoZWxwIiAiZG9jcyIgImNvbnZlbmll bmNlIikKOzsgIDphdXRob3JzCjs7ICAnKCgiSC4gRGlldGVyIFdpbGhlbG0iIC4gImRpZXRlckBk dWVuZW5ob2Ytd2lsaGVsbS5kZSIpKQo7OyAgOm1haW50YWluZXIKOzsgICcoIkguIERpZXRlciBX aWxoZWxtIiAuICJkaWV0ZXJAZHVlbmVuaG9mLXdpbGhlbG0uZGUiKQo7OyAgOnVybCAiaHR0cHM6 Ly9naXRodWIuY29tL2RpZXRlci13aWxoZWxtL2luZm9ybSIKICApCgoAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAExJQ0VOU0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAwMDAwNjY0ADAwMDE3NTEAMDAwMTc1MQAwMDAwMDEwNDUxNQAxMzY1MDMwNjU3MgAwMTE0MTYA IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABkaWV0 ZXIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRpZXRlcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElD RU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29w eXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cHM6Ly9m c2Yub3JnLz4KIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZl cmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQg aXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAg VGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGEgZnJlZSwgY29weWxlZnQgbGljZW5z ZSBmb3IKc29mdHdhcmUgYW5kIG90aGVyIGtpbmRzIG9mIHdvcmtzLgoKICBUaGUgbGljZW5zZXMg Zm9yIG1vc3Qgc29mdHdhcmUgYW5kIG90aGVyIHByYWN0aWNhbCB3b3JrcyBhcmUgZGVzaWduZWQK dG8gdGFrZSBhd2F5IHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIHRoZSB3b3Jrcy4g IEJ5IGNvbnRyYXN0LAp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgaW50ZW5kZWQg dG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0bwpzaGFyZSBhbmQgY2hhbmdlIGFsbCB2ZXJzaW9u cyBvZiBhIHByb2dyYW0tLXRvIG1ha2Ugc3VyZSBpdCByZW1haW5zIGZyZWUKc29mdHdhcmUgZm9y IGFsbCBpdHMgdXNlcnMuICBXZSwgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgdXNlIHRo ZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9zdCBvZiBvdXIgc29mdHdhcmU7IGl0 IGFwcGxpZXMgYWxzbyB0bwphbnkgb3RoZXIgd29yayByZWxlYXNlZCB0aGlzIHdheSBieSBpdHMg YXV0aG9ycy4gIFlvdSBjYW4gYXBwbHkgaXQgdG8KeW91ciBwcm9ncmFtcywgdG9vLgoKICBXaGVu IHdlIHNwZWFrIG9mIGZyZWUgc29mdHdhcmUsIHdlIGFyZSByZWZlcnJpbmcgdG8gZnJlZWRvbSwg bm90CnByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBt YWtlIHN1cmUgdGhhdCB5b3UKaGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBv ZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgp0aGVtIGlmIHlvdSB3aXNoKSwgdGhhdCB5 b3UgcmVjZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0IGlmIHlvdQp3YW50IGl0LCB0aGF0 IHlvdSBjYW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBvciB1c2UgcGllY2VzIG9mIGl0IGluIG5ldwpm cmVlIHByb2dyYW1zLCBhbmQgdGhhdCB5b3Uga25vdyB5b3UgY2FuIGRvIHRoZXNlIHRoaW5ncy4K CiAgVG8gcHJvdGVjdCB5b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBwcmV2ZW50IG90aGVycyBmcm9t IGRlbnlpbmcgeW91CnRoZXNlIHJpZ2h0cyBvciBhc2tpbmcgeW91IHRvIHN1cnJlbmRlciB0aGUg cmlnaHRzLiAgVGhlcmVmb3JlLCB5b3UgaGF2ZQpjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgaWYg eW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBzb2Z0d2FyZSwgb3IgaWYKeW91IG1vZGlmeSBp dDogcmVzcG9uc2liaWxpdGllcyB0byByZXNwZWN0IHRoZSBmcmVlZG9tIG9mIG90aGVycy4KCiAg Rm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiBzdWNoIGEgcHJvZ3JhbSwg d2hldGhlcgpncmF0aXMgb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBwYXNzIG9uIHRvIHRoZSByZWNp cGllbnRzIHRoZSBzYW1lCmZyZWVkb21zIHRoYXQgeW91IHJlY2VpdmVkLiAgWW91IG11c3QgbWFr ZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlCm9yIGNhbiBnZXQgdGhlIHNvdXJjZSBjb2Rl LiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5Cmtub3cgdGhlaXIg cmlnaHRzLgoKICBEZXZlbG9wZXJzIHRoYXQgdXNlIHRoZSBHTlUgR1BMIHByb3RlY3QgeW91ciBy aWdodHMgd2l0aCB0d28gc3RlcHM6CigxKSBhc3NlcnQgY29weXJpZ2h0IG9uIHRoZSBzb2Z0d2Fy ZSwgYW5kICgyKSBvZmZlciB5b3UgdGhpcyBMaWNlbnNlCmdpdmluZyB5b3UgbGVnYWwgcGVybWlz c2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgaXQuCgogIEZvciB0aGUgZGV2 ZWxvcGVycycgYW5kIGF1dGhvcnMnIHByb3RlY3Rpb24sIHRoZSBHUEwgY2xlYXJseSBleHBsYWlu cwp0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGlzIGZyZWUgc29mdHdhcmUuICBGb3Ig Ym90aCB1c2VycycgYW5kCmF1dGhvcnMnIHNha2UsIHRoZSBHUEwgcmVxdWlyZXMgdGhhdCBtb2Rp ZmllZCB2ZXJzaW9ucyBiZSBtYXJrZWQgYXMKY2hhbmdlZCwgc28gdGhhdCB0aGVpciBwcm9ibGVt cyB3aWxsIG5vdCBiZSBhdHRyaWJ1dGVkIGVycm9uZW91c2x5IHRvCmF1dGhvcnMgb2YgcHJldmlv dXMgdmVyc2lvbnMuCgogIFNvbWUgZGV2aWNlcyBhcmUgZGVzaWduZWQgdG8gZGVueSB1c2VycyBh Y2Nlc3MgdG8gaW5zdGFsbCBvciBydW4KbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhlIHNvZnR3YXJl IGluc2lkZSB0aGVtLCBhbHRob3VnaCB0aGUgbWFudWZhY3R1cmVyCmNhbiBkbyBzby4gIFRoaXMg aXMgZnVuZGFtZW50YWxseSBpbmNvbXBhdGlibGUgd2l0aCB0aGUgYWltIG9mCnByb3RlY3Rpbmcg dXNlcnMnIGZyZWVkb20gdG8gY2hhbmdlIHRoZSBzb2Z0d2FyZS4gIFRoZSBzeXN0ZW1hdGljCnBh dHRlcm4gb2Ygc3VjaCBhYnVzZSBvY2N1cnMgaW4gdGhlIGFyZWEgb2YgcHJvZHVjdHMgZm9yIGlu ZGl2aWR1YWxzIHRvCnVzZSwgd2hpY2ggaXMgcHJlY2lzZWx5IHdoZXJlIGl0IGlzIG1vc3QgdW5h Y2NlcHRhYmxlLiAgVGhlcmVmb3JlLCB3ZQpoYXZlIGRlc2lnbmVkIHRoaXMgdmVyc2lvbiBvZiB0 aGUgR1BMIHRvIHByb2hpYml0IHRoZSBwcmFjdGljZSBmb3IgdGhvc2UKcHJvZHVjdHMuICBJZiBz dWNoIHByb2JsZW1zIGFyaXNlIHN1YnN0YW50aWFsbHkgaW4gb3RoZXIgZG9tYWlucywgd2UKc3Rh bmQgcmVhZHkgdG8gZXh0ZW5kIHRoaXMgcHJvdmlzaW9uIHRvIHRob3NlIGRvbWFpbnMgaW4gZnV0 dXJlIHZlcnNpb25zCm9mIHRoZSBHUEwsIGFzIG5lZWRlZCB0byBwcm90ZWN0IHRoZSBmcmVlZG9t IG9mIHVzZXJzLgoKICBGaW5hbGx5LCBldmVyeSBwcm9ncmFtIGlzIHRocmVhdGVuZWQgY29uc3Rh bnRseSBieSBzb2Z0d2FyZSBwYXRlbnRzLgpTdGF0ZXMgc2hvdWxkIG5vdCBhbGxvdyBwYXRlbnRz IHRvIHJlc3RyaWN0IGRldmVsb3BtZW50IGFuZCB1c2Ugb2YKc29mdHdhcmUgb24gZ2VuZXJhbC1w dXJwb3NlIGNvbXB1dGVycywgYnV0IGluIHRob3NlIHRoYXQgZG8sIHdlIHdpc2ggdG8KYXZvaWQg dGhlIHNwZWNpYWwgZGFuZ2VyIHRoYXQgcGF0ZW50cyBhcHBsaWVkIHRvIGEgZnJlZSBwcm9ncmFt IGNvdWxkCm1ha2UgaXQgZWZmZWN0aXZlbHkgcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMs IHRoZSBHUEwgYXNzdXJlcyB0aGF0CnBhdGVudHMgY2Fubm90IGJlIHVzZWQgdG8gcmVuZGVyIHRo ZSBwcm9ncmFtIG5vbi1mcmVlLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBm b3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAg ICAgICAgICAgICAgICAgICBURVJNUyBBTkQgQ09ORElUSU9OUwoKICAwLiBEZWZpbml0aW9ucy4K CiAgIlRoaXMgTGljZW5zZSIgcmVmZXJzIHRvIHZlcnNpb24gMyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UuCgogICJDb3B5cmlnaHQiIGFsc28gbWVhbnMgY29weXJpZ2h0LWxpa2Ug bGF3cyB0aGF0IGFwcGx5IHRvIG90aGVyIGtpbmRzIG9mCndvcmtzLCBzdWNoIGFzIHNlbWljb25k dWN0b3IgbWFza3MuCgogICJUaGUgUHJvZ3JhbSIgcmVmZXJzIHRvIGFueSBjb3B5cmlnaHRhYmxl IHdvcmsgbGljZW5zZWQgdW5kZXIgdGhpcwpMaWNlbnNlLiAgRWFjaCBsaWNlbnNlZSBpcyBhZGRy ZXNzZWQgYXMgInlvdSIuICAiTGljZW5zZWVzIiBhbmQKInJlY2lwaWVudHMiIG1heSBiZSBpbmRp dmlkdWFscyBvciBvcmdhbml6YXRpb25zLgoKICBUbyAibW9kaWZ5IiBhIHdvcmsgbWVhbnMgdG8g Y29weSBmcm9tIG9yIGFkYXB0IGFsbCBvciBwYXJ0IG9mIHRoZSB3b3JrCmluIGEgZmFzaGlvbiBy ZXF1aXJpbmcgY29weXJpZ2h0IHBlcm1pc3Npb24sIG90aGVyIHRoYW4gdGhlIG1ha2luZyBvZiBh bgpleGFjdCBjb3B5LiAgVGhlIHJlc3VsdGluZyB3b3JrIGlzIGNhbGxlZCBhICJtb2RpZmllZCB2 ZXJzaW9uIiBvZiB0aGUKZWFybGllciB3b3JrIG9yIGEgd29yayAiYmFzZWQgb24iIHRoZSBlYXJs aWVyIHdvcmsuCgogIEEgImNvdmVyZWQgd29yayIgbWVhbnMgZWl0aGVyIHRoZSB1bm1vZGlmaWVk IFByb2dyYW0gb3IgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLgoKICBUbyAicHJvcGFnYXRl IiBhIHdvcmsgbWVhbnMgdG8gZG8gYW55dGhpbmcgd2l0aCBpdCB0aGF0LCB3aXRob3V0CnBlcm1p c3Npb24sIHdvdWxkIG1ha2UgeW91IGRpcmVjdGx5IG9yIHNlY29uZGFyaWx5IGxpYWJsZSBmb3IK aW5mcmluZ2VtZW50IHVuZGVyIGFwcGxpY2FibGUgY29weXJpZ2h0IGxhdywgZXhjZXB0IGV4ZWN1 dGluZyBpdCBvbiBhCmNvbXB1dGVyIG9yIG1vZGlmeWluZyBhIHByaXZhdGUgY29weS4gIFByb3Bh Z2F0aW9uIGluY2x1ZGVzIGNvcHlpbmcsCmRpc3RyaWJ1dGlvbiAod2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbiksIG1ha2luZyBhdmFpbGFibGUgdG8gdGhlCnB1YmxpYywgYW5kIGluIHNvbWUg Y291bnRyaWVzIG90aGVyIGFjdGl2aXRpZXMgYXMgd2VsbC4KCiAgVG8gImNvbnZleSIgYSB3b3Jr IG1lYW5zIGFueSBraW5kIG9mIHByb3BhZ2F0aW9uIHRoYXQgZW5hYmxlcyBvdGhlcgpwYXJ0aWVz IHRvIG1ha2Ugb3IgcmVjZWl2ZSBjb3BpZXMuICBNZXJlIGludGVyYWN0aW9uIHdpdGggYSB1c2Vy IHRocm91Z2gKYSBjb21wdXRlciBuZXR3b3JrLCB3aXRoIG5vIHRyYW5zZmVyIG9mIGEgY29weSwg aXMgbm90IGNvbnZleWluZy4KCiAgQW4gaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZhY2UgZGlzcGxh eXMgIkFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXMiCnRvIHRoZSBleHRlbnQgdGhhdCBpdCBpbmNs dWRlcyBhIGNvbnZlbmllbnQgYW5kIHByb21pbmVudGx5IHZpc2libGUKZmVhdHVyZSB0aGF0ICgx KSBkaXNwbGF5cyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlLCBhbmQgKDIpCnRlbGxz IHRoZSB1c2VyIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoZSB3b3JrIChleGNlcHQg dG8gdGhlCmV4dGVudCB0aGF0IHdhcnJhbnRpZXMgYXJlIHByb3ZpZGVkKSwgdGhhdCBsaWNlbnNl ZXMgbWF5IGNvbnZleSB0aGUKd29yayB1bmRlciB0aGlzIExpY2Vuc2UsIGFuZCBob3cgdG8gdmll dyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlLiAgSWYKdGhlIGludGVyZmFjZSBwcmVzZW50cyBhIGxp c3Qgb2YgdXNlciBjb21tYW5kcyBvciBvcHRpb25zLCBzdWNoIGFzIGEKbWVudSwgYSBwcm9taW5l bnQgaXRlbSBpbiB0aGUgbGlzdCBtZWV0cyB0aGlzIGNyaXRlcmlvbi4KCiAgMS4gU291cmNlIENv ZGUuCgogIFRoZSAic291cmNlIGNvZGUiIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBm b3JtIG9mIHRoZSB3b3JrCmZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gICJPYmplY3Qg Y29kZSIgbWVhbnMgYW55IG5vbi1zb3VyY2UKZm9ybSBvZiBhIHdvcmsuCgogIEEgIlN0YW5kYXJk IEludGVyZmFjZSIgbWVhbnMgYW4gaW50ZXJmYWNlIHRoYXQgZWl0aGVyIGlzIGFuIG9mZmljaWFs CnN0YW5kYXJkIGRlZmluZWQgYnkgYSByZWNvZ25pemVkIHN0YW5kYXJkcyBib2R5LCBvciwgaW4g dGhlIGNhc2Ugb2YKaW50ZXJmYWNlcyBzcGVjaWZpZWQgZm9yIGEgcGFydGljdWxhciBwcm9ncmFt bWluZyBsYW5ndWFnZSwgb25lIHRoYXQKaXMgd2lkZWx5IHVzZWQgYW1vbmcgZGV2ZWxvcGVycyB3 b3JraW5nIGluIHRoYXQgbGFuZ3VhZ2UuCgogIFRoZSAiU3lzdGVtIExpYnJhcmllcyIgb2YgYW4g ZXhlY3V0YWJsZSB3b3JrIGluY2x1ZGUgYW55dGhpbmcsIG90aGVyCnRoYW4gdGhlIHdvcmsgYXMg YSB3aG9sZSwgdGhhdCAoYSkgaXMgaW5jbHVkZWQgaW4gdGhlIG5vcm1hbCBmb3JtIG9mCnBhY2th Z2luZyBhIE1ham9yIENvbXBvbmVudCwgYnV0IHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoYXQgTWFq b3IKQ29tcG9uZW50LCBhbmQgKGIpIHNlcnZlcyBvbmx5IHRvIGVuYWJsZSB1c2Ugb2YgdGhlIHdv cmsgd2l0aCB0aGF0Ck1ham9yIENvbXBvbmVudCwgb3IgdG8gaW1wbGVtZW50IGEgU3RhbmRhcmQg SW50ZXJmYWNlIGZvciB3aGljaCBhbgppbXBsZW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgdG8gdGhl IHB1YmxpYyBpbiBzb3VyY2UgY29kZSBmb3JtLiAgQQoiTWFqb3IgQ29tcG9uZW50IiwgaW4gdGhp cyBjb250ZXh0LCBtZWFucyBhIG1ham9yIGVzc2VudGlhbCBjb21wb25lbnQKKGtlcm5lbCwgd2lu ZG93IHN5c3RlbSwgYW5kIHNvIG9uKSBvZiB0aGUgc3BlY2lmaWMgb3BlcmF0aW5nIHN5c3RlbQoo aWYgYW55KSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSB3b3JrIHJ1bnMsIG9yIGEgY29tcGlsZXIg dXNlZCB0bwpwcm9kdWNlIHRoZSB3b3JrLCBvciBhbiBvYmplY3QgY29kZSBpbnRlcnByZXRlciB1 c2VkIHRvIHJ1biBpdC4KCiAgVGhlICJDb3JyZXNwb25kaW5nIFNvdXJjZSIgZm9yIGEgd29yayBp biBvYmplY3QgY29kZSBmb3JtIG1lYW5zIGFsbAp0aGUgc291cmNlIGNvZGUgbmVlZGVkIHRvIGdl bmVyYXRlLCBpbnN0YWxsLCBhbmQgKGZvciBhbiBleGVjdXRhYmxlCndvcmspIHJ1biB0aGUgb2Jq ZWN0IGNvZGUgYW5kIHRvIG1vZGlmeSB0aGUgd29yaywgaW5jbHVkaW5nIHNjcmlwdHMgdG8KY29u dHJvbCB0aG9zZSBhY3Rpdml0aWVzLiAgSG93ZXZlciwgaXQgZG9lcyBub3QgaW5jbHVkZSB0aGUg d29yaydzClN5c3RlbSBMaWJyYXJpZXMsIG9yIGdlbmVyYWwtcHVycG9zZSB0b29scyBvciBnZW5l cmFsbHkgYXZhaWxhYmxlIGZyZWUKcHJvZ3JhbXMgd2hpY2ggYXJlIHVzZWQgdW5tb2RpZmllZCBp biBwZXJmb3JtaW5nIHRob3NlIGFjdGl2aXRpZXMgYnV0CndoaWNoIGFyZSBub3QgcGFydCBvZiB0 aGUgd29yay4gIEZvciBleGFtcGxlLCBDb3JyZXNwb25kaW5nIFNvdXJjZQppbmNsdWRlcyBpbnRl cmZhY2UgZGVmaW5pdGlvbiBmaWxlcyBhc3NvY2lhdGVkIHdpdGggc291cmNlIGZpbGVzIGZvcgp0 aGUgd29yaywgYW5kIHRoZSBzb3VyY2UgY29kZSBmb3Igc2hhcmVkIGxpYnJhcmllcyBhbmQgZHlu YW1pY2FsbHkKbGlua2VkIHN1YnByb2dyYW1zIHRoYXQgdGhlIHdvcmsgaXMgc3BlY2lmaWNhbGx5 IGRlc2lnbmVkIHRvIHJlcXVpcmUsCnN1Y2ggYXMgYnkgaW50aW1hdGUgZGF0YSBjb21tdW5pY2F0 aW9uIG9yIGNvbnRyb2wgZmxvdyBiZXR3ZWVuIHRob3NlCnN1YnByb2dyYW1zIGFuZCBvdGhlciBw YXJ0cyBvZiB0aGUgd29yay4KCiAgVGhlIENvcnJlc3BvbmRpbmcgU291cmNlIG5lZWQgbm90IGlu Y2x1ZGUgYW55dGhpbmcgdGhhdCB1c2VycwpjYW4gcmVnZW5lcmF0ZSBhdXRvbWF0aWNhbGx5IGZy b20gb3RoZXIgcGFydHMgb2YgdGhlIENvcnJlc3BvbmRpbmcKU291cmNlLgoKICBUaGUgQ29ycmVz cG9uZGluZyBTb3VyY2UgZm9yIGEgd29yayBpbiBzb3VyY2UgY29kZSBmb3JtIGlzIHRoYXQKc2Ft ZSB3b3JrLgoKICAyLiBCYXNpYyBQZXJtaXNzaW9ucy4KCiAgQWxsIHJpZ2h0cyBncmFudGVkIHVu ZGVyIHRoaXMgTGljZW5zZSBhcmUgZ3JhbnRlZCBmb3IgdGhlIHRlcm0gb2YKY29weXJpZ2h0IG9u IHRoZSBQcm9ncmFtLCBhbmQgYXJlIGlycmV2b2NhYmxlIHByb3ZpZGVkIHRoZSBzdGF0ZWQKY29u ZGl0aW9ucyBhcmUgbWV0LiAgVGhpcyBMaWNlbnNlIGV4cGxpY2l0bHkgYWZmaXJtcyB5b3VyIHVu bGltaXRlZApwZXJtaXNzaW9uIHRvIHJ1biB0aGUgdW5tb2RpZmllZCBQcm9ncmFtLiAgVGhlIG91 dHB1dCBmcm9tIHJ1bm5pbmcgYQpjb3ZlcmVkIHdvcmsgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vu c2Ugb25seSBpZiB0aGUgb3V0cHV0LCBnaXZlbiBpdHMKY29udGVudCwgY29uc3RpdHV0ZXMgYSBj b3ZlcmVkIHdvcmsuICBUaGlzIExpY2Vuc2UgYWNrbm93bGVkZ2VzIHlvdXIKcmlnaHRzIG9mIGZh aXIgdXNlIG9yIG90aGVyIGVxdWl2YWxlbnQsIGFzIHByb3ZpZGVkIGJ5IGNvcHlyaWdodCBsYXcu CgogIFlvdSBtYXkgbWFrZSwgcnVuIGFuZCBwcm9wYWdhdGUgY292ZXJlZCB3b3JrcyB0aGF0IHlv dSBkbyBub3QKY29udmV5LCB3aXRob3V0IGNvbmRpdGlvbnMgc28gbG9uZyBhcyB5b3VyIGxpY2Vu c2Ugb3RoZXJ3aXNlIHJlbWFpbnMKaW4gZm9yY2UuICBZb3UgbWF5IGNvbnZleSBjb3ZlcmVkIHdv cmtzIHRvIG90aGVycyBmb3IgdGhlIHNvbGUgcHVycG9zZQpvZiBoYXZpbmcgdGhlbSBtYWtlIG1v ZGlmaWNhdGlvbnMgZXhjbHVzaXZlbHkgZm9yIHlvdSwgb3IgcHJvdmlkZSB5b3UKd2l0aCBmYWNp bGl0aWVzIGZvciBydW5uaW5nIHRob3NlIHdvcmtzLCBwcm92aWRlZCB0aGF0IHlvdSBjb21wbHkg d2l0aAp0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIGluIGNvbnZleWluZyBhbGwgbWF0ZXJpYWwg Zm9yIHdoaWNoIHlvdSBkbwpub3QgY29udHJvbCBjb3B5cmlnaHQuICBUaG9zZSB0aHVzIG1ha2lu ZyBvciBydW5uaW5nIHRoZSBjb3ZlcmVkIHdvcmtzCmZvciB5b3UgbXVzdCBkbyBzbyBleGNsdXNp dmVseSBvbiB5b3VyIGJlaGFsZiwgdW5kZXIgeW91ciBkaXJlY3Rpb24KYW5kIGNvbnRyb2wsIG9u IHRlcm1zIHRoYXQgcHJvaGliaXQgdGhlbSBmcm9tIG1ha2luZyBhbnkgY29waWVzIG9mCnlvdXIg Y29weXJpZ2h0ZWQgbWF0ZXJpYWwgb3V0c2lkZSB0aGVpciByZWxhdGlvbnNoaXAgd2l0aCB5b3Uu CgogIENvbnZleWluZyB1bmRlciBhbnkgb3RoZXIgY2lyY3Vtc3RhbmNlcyBpcyBwZXJtaXR0ZWQg c29sZWx5IHVuZGVyCnRoZSBjb25kaXRpb25zIHN0YXRlZCBiZWxvdy4gIFN1YmxpY2Vuc2luZyBp cyBub3QgYWxsb3dlZDsgc2VjdGlvbiAxMAptYWtlcyBpdCB1bm5lY2Vzc2FyeS4KCiAgMy4gUHJv dGVjdGluZyBVc2VycycgTGVnYWwgUmlnaHRzIEZyb20gQW50aS1DaXJjdW12ZW50aW9uIExhdy4K CiAgTm8gY292ZXJlZCB3b3JrIHNoYWxsIGJlIGRlZW1lZCBwYXJ0IG9mIGFuIGVmZmVjdGl2ZSB0 ZWNobm9sb2dpY2FsCm1lYXN1cmUgdW5kZXIgYW55IGFwcGxpY2FibGUgbGF3IGZ1bGZpbGxpbmcg b2JsaWdhdGlvbnMgdW5kZXIgYXJ0aWNsZQoxMSBvZiB0aGUgV0lQTyBjb3B5cmlnaHQgdHJlYXR5 IGFkb3B0ZWQgb24gMjAgRGVjZW1iZXIgMTk5Niwgb3IKc2ltaWxhciBsYXdzIHByb2hpYml0aW5n IG9yIHJlc3RyaWN0aW5nIGNpcmN1bXZlbnRpb24gb2Ygc3VjaAptZWFzdXJlcy4KCiAgV2hlbiB5 b3UgY29udmV5IGEgY292ZXJlZCB3b3JrLCB5b3Ugd2FpdmUgYW55IGxlZ2FsIHBvd2VyIHRvIGZv cmJpZApjaXJjdW12ZW50aW9uIG9mIHRlY2hub2xvZ2ljYWwgbWVhc3VyZXMgdG8gdGhlIGV4dGVu dCBzdWNoIGNpcmN1bXZlbnRpb24KaXMgZWZmZWN0ZWQgYnkgZXhlcmNpc2luZyByaWdodHMgdW5k ZXIgdGhpcyBMaWNlbnNlIHdpdGggcmVzcGVjdCB0bwp0aGUgY292ZXJlZCB3b3JrLCBhbmQgeW91 IGRpc2NsYWltIGFueSBpbnRlbnRpb24gdG8gbGltaXQgb3BlcmF0aW9uIG9yCm1vZGlmaWNhdGlv biBvZiB0aGUgd29yayBhcyBhIG1lYW5zIG9mIGVuZm9yY2luZywgYWdhaW5zdCB0aGUgd29yaydz CnVzZXJzLCB5b3VyIG9yIHRoaXJkIHBhcnRpZXMnIGxlZ2FsIHJpZ2h0cyB0byBmb3JiaWQgY2ly Y3VtdmVudGlvbiBvZgp0ZWNobm9sb2dpY2FsIG1lYXN1cmVzLgoKICA0LiBDb252ZXlpbmcgVmVy YmF0aW0gQ29waWVzLgoKICBZb3UgbWF5IGNvbnZleSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFBy b2dyYW0ncyBzb3VyY2UgY29kZSBhcyB5b3UKcmVjZWl2ZSBpdCwgaW4gYW55IG1lZGl1bSwgcHJv dmlkZWQgdGhhdCB5b3UgY29uc3BpY3VvdXNseSBhbmQKYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9u IGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlOwprZWVwIGludGFjdCBh bGwgbm90aWNlcyBzdGF0aW5nIHRoYXQgdGhpcyBMaWNlbnNlIGFuZCBhbnkKbm9uLXBlcm1pc3Np dmUgdGVybXMgYWRkZWQgaW4gYWNjb3JkIHdpdGggc2VjdGlvbiA3IGFwcGx5IHRvIHRoZSBjb2Rl OwprZWVwIGludGFjdCBhbGwgbm90aWNlcyBvZiB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7 IGFuZCBnaXZlIGFsbApyZWNpcGllbnRzIGEgY29weSBvZiB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0 aCB0aGUgUHJvZ3JhbS4KCiAgWW91IG1heSBjaGFyZ2UgYW55IHByaWNlIG9yIG5vIHByaWNlIGZv ciBlYWNoIGNvcHkgdGhhdCB5b3UgY29udmV5LAphbmQgeW91IG1heSBvZmZlciBzdXBwb3J0IG9y IHdhcnJhbnR5IHByb3RlY3Rpb24gZm9yIGEgZmVlLgoKICA1LiBDb252ZXlpbmcgTW9kaWZpZWQg U291cmNlIFZlcnNpb25zLgoKICBZb3UgbWF5IGNvbnZleSBhIHdvcmsgYmFzZWQgb24gdGhlIFBy b2dyYW0sIG9yIHRoZSBtb2RpZmljYXRpb25zIHRvCnByb2R1Y2UgaXQgZnJvbSB0aGUgUHJvZ3Jh bSwgaW4gdGhlIGZvcm0gb2Ygc291cmNlIGNvZGUgdW5kZXIgdGhlCnRlcm1zIG9mIHNlY3Rpb24g NCwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOgoK ICAgIGEpIFRoZSB3b3JrIG11c3QgY2FycnkgcHJvbWluZW50IG5vdGljZXMgc3RhdGluZyB0aGF0 IHlvdSBtb2RpZmllZAogICAgaXQsIGFuZCBnaXZpbmcgYSByZWxldmFudCBkYXRlLgoKICAgIGIp IFRoZSB3b3JrIG11c3QgY2FycnkgcHJvbWluZW50IG5vdGljZXMgc3RhdGluZyB0aGF0IGl0IGlz CiAgICByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UgYW5kIGFueSBjb25kaXRpb25zIGFkZGVk IHVuZGVyIHNlY3Rpb24KICAgIDcuICBUaGlzIHJlcXVpcmVtZW50IG1vZGlmaWVzIHRoZSByZXF1 aXJlbWVudCBpbiBzZWN0aW9uIDQgdG8KICAgICJrZWVwIGludGFjdCBhbGwgbm90aWNlcyIuCgog ICAgYykgWW91IG11c3QgbGljZW5zZSB0aGUgZW50aXJlIHdvcmssIGFzIGEgd2hvbGUsIHVuZGVy IHRoaXMKICAgIExpY2Vuc2UgdG8gYW55b25lIHdobyBjb21lcyBpbnRvIHBvc3Nlc3Npb24gb2Yg YSBjb3B5LiAgVGhpcwogICAgTGljZW5zZSB3aWxsIHRoZXJlZm9yZSBhcHBseSwgYWxvbmcgd2l0 aCBhbnkgYXBwbGljYWJsZSBzZWN0aW9uIDcKICAgIGFkZGl0aW9uYWwgdGVybXMsIHRvIHRoZSB3 aG9sZSBvZiB0aGUgd29yaywgYW5kIGFsbCBpdHMgcGFydHMsCiAgICByZWdhcmRsZXNzIG9mIGhv dyB0aGV5IGFyZSBwYWNrYWdlZC4gIFRoaXMgTGljZW5zZSBnaXZlcyBubwogICAgcGVybWlzc2lv biB0byBsaWNlbnNlIHRoZSB3b3JrIGluIGFueSBvdGhlciB3YXksIGJ1dCBpdCBkb2VzIG5vdAog ICAgaW52YWxpZGF0ZSBzdWNoIHBlcm1pc3Npb24gaWYgeW91IGhhdmUgc2VwYXJhdGVseSByZWNl aXZlZCBpdC4KCiAgICBkKSBJZiB0aGUgd29yayBoYXMgaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZh Y2VzLCBlYWNoIG11c3QgZGlzcGxheQogICAgQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlczsgaG93 ZXZlciwgaWYgdGhlIFByb2dyYW0gaGFzIGludGVyYWN0aXZlCiAgICBpbnRlcmZhY2VzIHRoYXQg ZG8gbm90IGRpc3BsYXkgQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcywgeW91cgogICAgd29yayBu ZWVkIG5vdCBtYWtlIHRoZW0gZG8gc28uCgogIEEgY29tcGlsYXRpb24gb2YgYSBjb3ZlcmVkIHdv cmsgd2l0aCBvdGhlciBzZXBhcmF0ZSBhbmQgaW5kZXBlbmRlbnQKd29ya3MsIHdoaWNoIGFyZSBu b3QgYnkgdGhlaXIgbmF0dXJlIGV4dGVuc2lvbnMgb2YgdGhlIGNvdmVyZWQgd29yaywKYW5kIHdo aWNoIGFyZSBub3QgY29tYmluZWQgd2l0aCBpdCBzdWNoIGFzIHRvIGZvcm0gYSBsYXJnZXIgcHJv Z3JhbSwKaW4gb3Igb24gYSB2b2x1bWUgb2YgYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRp dW0sIGlzIGNhbGxlZCBhbgoiYWdncmVnYXRlIiBpZiB0aGUgY29tcGlsYXRpb24gYW5kIGl0cyBy ZXN1bHRpbmcgY29weXJpZ2h0IGFyZSBub3QKdXNlZCB0byBsaW1pdCB0aGUgYWNjZXNzIG9yIGxl Z2FsIHJpZ2h0cyBvZiB0aGUgY29tcGlsYXRpb24ncyB1c2VycwpiZXlvbmQgd2hhdCB0aGUgaW5k aXZpZHVhbCB3b3JrcyBwZXJtaXQuICBJbmNsdXNpb24gb2YgYSBjb3ZlcmVkIHdvcmsKaW4gYW4g YWdncmVnYXRlIGRvZXMgbm90IGNhdXNlIHRoaXMgTGljZW5zZSB0byBhcHBseSB0byB0aGUgb3Ro ZXIKcGFydHMgb2YgdGhlIGFnZ3JlZ2F0ZS4KCiAgNi4gQ29udmV5aW5nIE5vbi1Tb3VyY2UgRm9y bXMuCgogIFlvdSBtYXkgY29udmV5IGEgY292ZXJlZCB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0g dW5kZXIgdGhlIHRlcm1zCm9mIHNlY3Rpb25zIDQgYW5kIDUsIHByb3ZpZGVkIHRoYXQgeW91IGFs c28gY29udmV5IHRoZQptYWNoaW5lLXJlYWRhYmxlIENvcnJlc3BvbmRpbmcgU291cmNlIHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsCmluIG9uZSBvZiB0aGVzZSB3YXlzOgoKICAgIGEp IENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHBy b2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNj b21wYW5pZWQgYnkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmaXhlZCBvbiBhIGR1cmFi bGUgcGh5c2ljYWwgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRl cmNoYW5nZS4KCiAgICBiKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBp biwgYSBwaHlzaWNhbCBwcm9kdWN0CiAgICAoaW5jbHVkaW5nIGEgcGh5c2ljYWwgZGlzdHJpYnV0 aW9uIG1lZGl1bSksIGFjY29tcGFuaWVkIGJ5IGEKICAgIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZv ciBhdCBsZWFzdCB0aHJlZSB5ZWFycyBhbmQgdmFsaWQgZm9yIGFzCiAgICBsb25nIGFzIHlvdSBv ZmZlciBzcGFyZSBwYXJ0cyBvciBjdXN0b21lciBzdXBwb3J0IGZvciB0aGF0IHByb2R1Y3QKICAg IG1vZGVsLCB0byBnaXZlIGFueW9uZSB3aG8gcG9zc2Vzc2VzIHRoZSBvYmplY3QgY29kZSBlaXRo ZXIgKDEpIGEKICAgIGNvcHkgb2YgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGZvciBhbGwgdGhl IHNvZnR3YXJlIGluIHRoZQogICAgcHJvZHVjdCB0aGF0IGlzIGNvdmVyZWQgYnkgdGhpcyBMaWNl bnNlLCBvbiBhIGR1cmFibGUgcGh5c2ljYWwKICAgIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZv ciBzb2Z0d2FyZSBpbnRlcmNoYW5nZSwgZm9yIGEgcHJpY2Ugbm8KICAgIG1vcmUgdGhhbiB5b3Vy IHJlYXNvbmFibGUgY29zdCBvZiBwaHlzaWNhbGx5IHBlcmZvcm1pbmcgdGhpcwogICAgY29udmV5 aW5nIG9mIHNvdXJjZSwgb3IgKDIpIGFjY2VzcyB0byBjb3B5IHRoZQogICAgQ29ycmVzcG9uZGlu ZyBTb3VyY2UgZnJvbSBhIG5ldHdvcmsgc2VydmVyIGF0IG5vIGNoYXJnZS4KCiAgICBjKSBDb252 ZXkgaW5kaXZpZHVhbCBjb3BpZXMgb2YgdGhlIG9iamVjdCBjb2RlIHdpdGggYSBjb3B5IG9mIHRo ZQogICAgd3JpdHRlbiBvZmZlciB0byBwcm92aWRlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZS4g IFRoaXMKICAgIGFsdGVybmF0aXZlIGlzIGFsbG93ZWQgb25seSBvY2Nhc2lvbmFsbHkgYW5kIG5v bmNvbW1lcmNpYWxseSwgYW5kCiAgICBvbmx5IGlmIHlvdSByZWNlaXZlZCB0aGUgb2JqZWN0IGNv ZGUgd2l0aCBzdWNoIGFuIG9mZmVyLCBpbiBhY2NvcmQKICAgIHdpdGggc3Vic2VjdGlvbiA2Yi4K CiAgICBkKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGJ5IG9mZmVyaW5nIGFjY2VzcyBmcm9tIGEg ZGVzaWduYXRlZAogICAgcGxhY2UgKGdyYXRpcyBvciBmb3IgYSBjaGFyZ2UpLCBhbmQgb2ZmZXIg ZXF1aXZhbGVudCBhY2Nlc3MgdG8gdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBpbiB0aGUg c2FtZSB3YXkgdGhyb3VnaCB0aGUgc2FtZSBwbGFjZSBhdCBubwogICAgZnVydGhlciBjaGFyZ2Uu ICBZb3UgbmVlZCBub3QgcmVxdWlyZSByZWNpcGllbnRzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNw b25kaW5nIFNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4gIElmIHRoZSBwbGFjZSB0 bwogICAgY29weSB0aGUgb2JqZWN0IGNvZGUgaXMgYSBuZXR3b3JrIHNlcnZlciwgdGhlIENvcnJl c3BvbmRpbmcgU291cmNlCiAgICBtYXkgYmUgb24gYSBkaWZmZXJlbnQgc2VydmVyIChvcGVyYXRl ZCBieSB5b3Ugb3IgYSB0aGlyZCBwYXJ0eSkKICAgIHRoYXQgc3VwcG9ydHMgZXF1aXZhbGVudCBj b3B5aW5nIGZhY2lsaXRpZXMsIHByb3ZpZGVkIHlvdSBtYWludGFpbgogICAgY2xlYXIgZGlyZWN0 aW9ucyBuZXh0IHRvIHRoZSBvYmplY3QgY29kZSBzYXlpbmcgd2hlcmUgdG8gZmluZCB0aGUKICAg IENvcnJlc3BvbmRpbmcgU291cmNlLiAgUmVnYXJkbGVzcyBvZiB3aGF0IHNlcnZlciBob3N0cyB0 aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlLCB5b3UgcmVtYWluIG9ibGlnYXRlZCB0byBlbnN1 cmUgdGhhdCBpdCBpcwogICAgYXZhaWxhYmxlIGZvciBhcyBsb25nIGFzIG5lZWRlZCB0byBzYXRp c2Z5IHRoZXNlIHJlcXVpcmVtZW50cy4KCiAgICBlKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIHVz aW5nIHBlZXItdG8tcGVlciB0cmFuc21pc3Npb24sIHByb3ZpZGVkCiAgICB5b3UgaW5mb3JtIG90 aGVyIHBlZXJzIHdoZXJlIHRoZSBvYmplY3QgY29kZSBhbmQgQ29ycmVzcG9uZGluZwogICAgU291 cmNlIG9mIHRoZSB3b3JrIGFyZSBiZWluZyBvZmZlcmVkIHRvIHRoZSBnZW5lcmFsIHB1YmxpYyBh dCBubwogICAgY2hhcmdlIHVuZGVyIHN1YnNlY3Rpb24gNmQuCgogIEEgc2VwYXJhYmxlIHBvcnRp b24gb2YgdGhlIG9iamVjdCBjb2RlLCB3aG9zZSBzb3VyY2UgY29kZSBpcyBleGNsdWRlZApmcm9t IHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBhcyBhIFN5c3RlbSBMaWJyYXJ5LCBuZWVkIG5vdCBi ZQppbmNsdWRlZCBpbiBjb252ZXlpbmcgdGhlIG9iamVjdCBjb2RlIHdvcmsuCgogIEEgIlVzZXIg UHJvZHVjdCIgaXMgZWl0aGVyICgxKSBhICJjb25zdW1lciBwcm9kdWN0Iiwgd2hpY2ggbWVhbnMg YW55CnRhbmdpYmxlIHBlcnNvbmFsIHByb3BlcnR5IHdoaWNoIGlzIG5vcm1hbGx5IHVzZWQgZm9y IHBlcnNvbmFsLCBmYW1pbHksCm9yIGhvdXNlaG9sZCBwdXJwb3Nlcywgb3IgKDIpIGFueXRoaW5n IGRlc2lnbmVkIG9yIHNvbGQgZm9yIGluY29ycG9yYXRpb24KaW50byBhIGR3ZWxsaW5nLiAgSW4g ZGV0ZXJtaW5pbmcgd2hldGhlciBhIHByb2R1Y3QgaXMgYSBjb25zdW1lciBwcm9kdWN0LApkb3Vi dGZ1bCBjYXNlcyBzaGFsbCBiZSByZXNvbHZlZCBpbiBmYXZvciBvZiBjb3ZlcmFnZS4gIEZvciBh IHBhcnRpY3VsYXIKcHJvZHVjdCByZWNlaXZlZCBieSBhIHBhcnRpY3VsYXIgdXNlciwgIm5vcm1h bGx5IHVzZWQiIHJlZmVycyB0byBhCnR5cGljYWwgb3IgY29tbW9uIHVzZSBvZiB0aGF0IGNsYXNz IG9mIHByb2R1Y3QsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0YXR1cwpvZiB0aGUgcGFydGljdWxhciB1 c2VyIG9yIG9mIHRoZSB3YXkgaW4gd2hpY2ggdGhlIHBhcnRpY3VsYXIgdXNlcgphY3R1YWxseSB1 c2VzLCBvciBleHBlY3RzIG9yIGlzIGV4cGVjdGVkIHRvIHVzZSwgdGhlIHByb2R1Y3QuICBBIHBy b2R1Y3QKaXMgYSBjb25zdW1lciBwcm9kdWN0IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgcHJv ZHVjdCBoYXMgc3Vic3RhbnRpYWwKY29tbWVyY2lhbCwgaW5kdXN0cmlhbCBvciBub24tY29uc3Vt ZXIgdXNlcywgdW5sZXNzIHN1Y2ggdXNlcyByZXByZXNlbnQKdGhlIG9ubHkgc2lnbmlmaWNhbnQg bW9kZSBvZiB1c2Ugb2YgdGhlIHByb2R1Y3QuCgogICJJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24i IGZvciBhIFVzZXIgUHJvZHVjdCBtZWFucyBhbnkgbWV0aG9kcywKcHJvY2VkdXJlcywgYXV0aG9y aXphdGlvbiBrZXlzLCBvciBvdGhlciBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBpbnN0YWxsCmFu ZCBleGVjdXRlIG1vZGlmaWVkIHZlcnNpb25zIG9mIGEgY292ZXJlZCB3b3JrIGluIHRoYXQgVXNl ciBQcm9kdWN0IGZyb20KYSBtb2RpZmllZCB2ZXJzaW9uIG9mIGl0cyBDb3JyZXNwb25kaW5nIFNv dXJjZS4gIFRoZSBpbmZvcm1hdGlvbiBtdXN0CnN1ZmZpY2UgdG8gZW5zdXJlIHRoYXQgdGhlIGNv bnRpbnVlZCBmdW5jdGlvbmluZyBvZiB0aGUgbW9kaWZpZWQgb2JqZWN0CmNvZGUgaXMgaW4gbm8g Y2FzZSBwcmV2ZW50ZWQgb3IgaW50ZXJmZXJlZCB3aXRoIHNvbGVseSBiZWNhdXNlCm1vZGlmaWNh dGlvbiBoYXMgYmVlbiBtYWRlLgoKICBJZiB5b3UgY29udmV5IGFuIG9iamVjdCBjb2RlIHdvcmsg dW5kZXIgdGhpcyBzZWN0aW9uIGluLCBvciB3aXRoLCBvcgpzcGVjaWZpY2FsbHkgZm9yIHVzZSBp biwgYSBVc2VyIFByb2R1Y3QsIGFuZCB0aGUgY29udmV5aW5nIG9jY3VycyBhcwpwYXJ0IG9mIGEg dHJhbnNhY3Rpb24gaW4gd2hpY2ggdGhlIHJpZ2h0IG9mIHBvc3Nlc3Npb24gYW5kIHVzZSBvZiB0 aGUKVXNlciBQcm9kdWN0IGlzIHRyYW5zZmVycmVkIHRvIHRoZSByZWNpcGllbnQgaW4gcGVycGV0 dWl0eSBvciBmb3IgYQpmaXhlZCB0ZXJtIChyZWdhcmRsZXNzIG9mIGhvdyB0aGUgdHJhbnNhY3Rp b24gaXMgY2hhcmFjdGVyaXplZCksIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCB1 bmRlciB0aGlzIHNlY3Rpb24gbXVzdCBiZSBhY2NvbXBhbmllZApieSB0aGUgSW5zdGFsbGF0aW9u IEluZm9ybWF0aW9uLiAgQnV0IHRoaXMgcmVxdWlyZW1lbnQgZG9lcyBub3QgYXBwbHkKaWYgbmVp dGhlciB5b3Ugbm9yIGFueSB0aGlyZCBwYXJ0eSByZXRhaW5zIHRoZSBhYmlsaXR5IHRvIGluc3Rh bGwKbW9kaWZpZWQgb2JqZWN0IGNvZGUgb24gdGhlIFVzZXIgUHJvZHVjdCAoZm9yIGV4YW1wbGUs IHRoZSB3b3JrIGhhcwpiZWVuIGluc3RhbGxlZCBpbiBST00pLgoKICBUaGUgcmVxdWlyZW1lbnQg dG8gcHJvdmlkZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24gZG9lcyBub3QgaW5jbHVkZSBhCnJl cXVpcmVtZW50IHRvIGNvbnRpbnVlIHRvIHByb3ZpZGUgc3VwcG9ydCBzZXJ2aWNlLCB3YXJyYW50 eSwgb3IgdXBkYXRlcwpmb3IgYSB3b3JrIHRoYXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFs bGVkIGJ5IHRoZSByZWNpcGllbnQsIG9yIGZvcgp0aGUgVXNlciBQcm9kdWN0IGluIHdoaWNoIGl0 IGhhcyBiZWVuIG1vZGlmaWVkIG9yIGluc3RhbGxlZC4gIEFjY2VzcyB0byBhCm5ldHdvcmsgbWF5 IGJlIGRlbmllZCB3aGVuIHRoZSBtb2RpZmljYXRpb24gaXRzZWxmIG1hdGVyaWFsbHkgYW5kCmFk dmVyc2VseSBhZmZlY3RzIHRoZSBvcGVyYXRpb24gb2YgdGhlIG5ldHdvcmsgb3IgdmlvbGF0ZXMg dGhlIHJ1bGVzIGFuZApwcm90b2NvbHMgZm9yIGNvbW11bmljYXRpb24gYWNyb3NzIHRoZSBuZXR3 b3JrLgoKICBDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCwgYW5kIEluc3RhbGxhdGlvbiBJ bmZvcm1hdGlvbiBwcm92aWRlZCwKaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uIG11c3QgYmUg aW4gYSBmb3JtYXQgdGhhdCBpcyBwdWJsaWNseQpkb2N1bWVudGVkIChhbmQgd2l0aCBhbiBpbXBs ZW1lbnRhdGlvbiBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBpbgpzb3VyY2UgY29kZSBmb3JtKSwg YW5kIG11c3QgcmVxdWlyZSBubyBzcGVjaWFsIHBhc3N3b3JkIG9yIGtleSBmb3IKdW5wYWNraW5n LCByZWFkaW5nIG9yIGNvcHlpbmcuCgogIDcuIEFkZGl0aW9uYWwgVGVybXMuCgogICJBZGRpdGlv bmFsIHBlcm1pc3Npb25zIiBhcmUgdGVybXMgdGhhdCBzdXBwbGVtZW50IHRoZSB0ZXJtcyBvZiB0 aGlzCkxpY2Vuc2UgYnkgbWFraW5nIGV4Y2VwdGlvbnMgZnJvbSBvbmUgb3IgbW9yZSBvZiBpdHMg Y29uZGl0aW9ucy4KQWRkaXRpb25hbCBwZXJtaXNzaW9ucyB0aGF0IGFyZSBhcHBsaWNhYmxlIHRv IHRoZSBlbnRpcmUgUHJvZ3JhbSBzaGFsbApiZSB0cmVhdGVkIGFzIHRob3VnaCB0aGV5IHdlcmUg aW5jbHVkZWQgaW4gdGhpcyBMaWNlbnNlLCB0byB0aGUgZXh0ZW50CnRoYXQgdGhleSBhcmUgdmFs aWQgdW5kZXIgYXBwbGljYWJsZSBsYXcuICBJZiBhZGRpdGlvbmFsIHBlcm1pc3Npb25zCmFwcGx5 IG9ubHkgdG8gcGFydCBvZiB0aGUgUHJvZ3JhbSwgdGhhdCBwYXJ0IG1heSBiZSB1c2VkIHNlcGFy YXRlbHkKdW5kZXIgdGhvc2UgcGVybWlzc2lvbnMsIGJ1dCB0aGUgZW50aXJlIFByb2dyYW0gcmVt YWlucyBnb3Zlcm5lZCBieQp0aGlzIExpY2Vuc2Ugd2l0aG91dCByZWdhcmQgdG8gdGhlIGFkZGl0 aW9uYWwgcGVybWlzc2lvbnMuCgogIFdoZW4geW91IGNvbnZleSBhIGNvcHkgb2YgYSBjb3ZlcmVk IHdvcmssIHlvdSBtYXkgYXQgeW91ciBvcHRpb24KcmVtb3ZlIGFueSBhZGRpdGlvbmFsIHBlcm1p c3Npb25zIGZyb20gdGhhdCBjb3B5LCBvciBmcm9tIGFueSBwYXJ0IG9mCml0LiAgKEFkZGl0aW9u YWwgcGVybWlzc2lvbnMgbWF5IGJlIHdyaXR0ZW4gdG8gcmVxdWlyZSB0aGVpciBvd24KcmVtb3Zh bCBpbiBjZXJ0YWluIGNhc2VzIHdoZW4geW91IG1vZGlmeSB0aGUgd29yay4pICBZb3UgbWF5IHBs YWNlCmFkZGl0aW9uYWwgcGVybWlzc2lvbnMgb24gbWF0ZXJpYWwsIGFkZGVkIGJ5IHlvdSB0byBh IGNvdmVyZWQgd29yaywKZm9yIHdoaWNoIHlvdSBoYXZlIG9yIGNhbiBnaXZlIGFwcHJvcHJpYXRl IGNvcHlyaWdodCBwZXJtaXNzaW9uLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zp c2lvbiBvZiB0aGlzIExpY2Vuc2UsIGZvciBtYXRlcmlhbCB5b3UKYWRkIHRvIGEgY292ZXJlZCB3 b3JrLCB5b3UgbWF5IChpZiBhdXRob3JpemVkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVycyBvZgp0 aGF0IG1hdGVyaWFsKSBzdXBwbGVtZW50IHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2Ugd2l0aCB0 ZXJtczoKCiAgICBhKSBEaXNjbGFpbWluZyB3YXJyYW50eSBvciBsaW1pdGluZyBsaWFiaWxpdHkg ZGlmZmVyZW50bHkgZnJvbSB0aGUKICAgIHRlcm1zIG9mIHNlY3Rpb25zIDE1IGFuZCAxNiBvZiB0 aGlzIExpY2Vuc2U7IG9yCgogICAgYikgUmVxdWlyaW5nIHByZXNlcnZhdGlvbiBvZiBzcGVjaWZp ZWQgcmVhc29uYWJsZSBsZWdhbCBub3RpY2VzIG9yCiAgICBhdXRob3IgYXR0cmlidXRpb25zIGlu IHRoYXQgbWF0ZXJpYWwgb3IgaW4gdGhlIEFwcHJvcHJpYXRlIExlZ2FsCiAgICBOb3RpY2VzIGRp c3BsYXllZCBieSB3b3JrcyBjb250YWluaW5nIGl0OyBvcgoKICAgIGMpIFByb2hpYml0aW5nIG1p c3JlcHJlc2VudGF0aW9uIG9mIHRoZSBvcmlnaW4gb2YgdGhhdCBtYXRlcmlhbCwgb3IKICAgIHJl cXVpcmluZyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIG9mIHN1Y2ggbWF0ZXJpYWwgYmUgbWFya2Vk IGluCiAgICByZWFzb25hYmxlIHdheXMgYXMgZGlmZmVyZW50IGZyb20gdGhlIG9yaWdpbmFsIHZl cnNpb247IG9yCgogICAgZCkgTGltaXRpbmcgdGhlIHVzZSBmb3IgcHVibGljaXR5IHB1cnBvc2Vz IG9mIG5hbWVzIG9mIGxpY2Vuc29ycyBvcgogICAgYXV0aG9ycyBvZiB0aGUgbWF0ZXJpYWw7IG9y CgogICAgZSkgRGVjbGluaW5nIHRvIGdyYW50IHJpZ2h0cyB1bmRlciB0cmFkZW1hcmsgbGF3IGZv ciB1c2Ugb2Ygc29tZQogICAgdHJhZGUgbmFtZXMsIHRyYWRlbWFya3MsIG9yIHNlcnZpY2UgbWFy a3M7IG9yCgogICAgZikgUmVxdWlyaW5nIGluZGVtbmlmaWNhdGlvbiBvZiBsaWNlbnNvcnMgYW5k IGF1dGhvcnMgb2YgdGhhdAogICAgbWF0ZXJpYWwgYnkgYW55b25lIHdobyBjb252ZXlzIHRoZSBt YXRlcmlhbCAob3IgbW9kaWZpZWQgdmVyc2lvbnMgb2YKICAgIGl0KSB3aXRoIGNvbnRyYWN0dWFs IGFzc3VtcHRpb25zIG9mIGxpYWJpbGl0eSB0byB0aGUgcmVjaXBpZW50LCBmb3IKICAgIGFueSBs aWFiaWxpdHkgdGhhdCB0aGVzZSBjb250cmFjdHVhbCBhc3N1bXB0aW9ucyBkaXJlY3RseSBpbXBv c2Ugb24KICAgIHRob3NlIGxpY2Vuc29ycyBhbmQgYXV0aG9ycy4KCiAgQWxsIG90aGVyIG5vbi1w ZXJtaXNzaXZlIGFkZGl0aW9uYWwgdGVybXMgYXJlIGNvbnNpZGVyZWQgImZ1cnRoZXIKcmVzdHJp Y3Rpb25zIiB3aXRoaW4gdGhlIG1lYW5pbmcgb2Ygc2VjdGlvbiAxMC4gIElmIHRoZSBQcm9ncmFt IGFzIHlvdQpyZWNlaXZlZCBpdCwgb3IgYW55IHBhcnQgb2YgaXQsIGNvbnRhaW5zIGEgbm90aWNl IHN0YXRpbmcgdGhhdCBpdCBpcwpnb3Zlcm5lZCBieSB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCBh IHRlcm0gdGhhdCBpcyBhIGZ1cnRoZXIKcmVzdHJpY3Rpb24sIHlvdSBtYXkgcmVtb3ZlIHRoYXQg dGVybS4gIElmIGEgbGljZW5zZSBkb2N1bWVudCBjb250YWlucwphIGZ1cnRoZXIgcmVzdHJpY3Rp b24gYnV0IHBlcm1pdHMgcmVsaWNlbnNpbmcgb3IgY29udmV5aW5nIHVuZGVyIHRoaXMKTGljZW5z ZSwgeW91IG1heSBhZGQgdG8gYSBjb3ZlcmVkIHdvcmsgbWF0ZXJpYWwgZ292ZXJuZWQgYnkgdGhl IHRlcm1zCm9mIHRoYXQgbGljZW5zZSBkb2N1bWVudCwgcHJvdmlkZWQgdGhhdCB0aGUgZnVydGhl ciByZXN0cmljdGlvbiBkb2VzCm5vdCBzdXJ2aXZlIHN1Y2ggcmVsaWNlbnNpbmcgb3IgY29udmV5 aW5nLgoKICBJZiB5b3UgYWRkIHRlcm1zIHRvIGEgY292ZXJlZCB3b3JrIGluIGFjY29yZCB3aXRo IHRoaXMgc2VjdGlvbiwgeW91Cm11c3QgcGxhY2UsIGluIHRoZSByZWxldmFudCBzb3VyY2UgZmls ZXMsIGEgc3RhdGVtZW50IG9mIHRoZQphZGRpdGlvbmFsIHRlcm1zIHRoYXQgYXBwbHkgdG8gdGhv c2UgZmlsZXMsIG9yIGEgbm90aWNlIGluZGljYXRpbmcKd2hlcmUgdG8gZmluZCB0aGUgYXBwbGlj YWJsZSB0ZXJtcy4KCiAgQWRkaXRpb25hbCB0ZXJtcywgcGVybWlzc2l2ZSBvciBub24tcGVybWlz c2l2ZSwgbWF5IGJlIHN0YXRlZCBpbiB0aGUKZm9ybSBvZiBhIHNlcGFyYXRlbHkgd3JpdHRlbiBs aWNlbnNlLCBvciBzdGF0ZWQgYXMgZXhjZXB0aW9uczsKdGhlIGFib3ZlIHJlcXVpcmVtZW50cyBh cHBseSBlaXRoZXIgd2F5LgoKICA4LiBUZXJtaW5hdGlvbi4KCiAgWW91IG1heSBub3QgcHJvcGFn YXRlIG9yIG1vZGlmeSBhIGNvdmVyZWQgd29yayBleGNlcHQgYXMgZXhwcmVzc2x5CnByb3ZpZGVk IHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0IG90aGVyd2lzZSB0byBwcm9wYWdhdGUg b3IKbW9kaWZ5IGl0IGlzIHZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlv dXIgcmlnaHRzIHVuZGVyCnRoaXMgTGljZW5zZSAoaW5jbHVkaW5nIGFueSBwYXRlbnQgbGljZW5z ZXMgZ3JhbnRlZCB1bmRlciB0aGUgdGhpcmQKcGFyYWdyYXBoIG9mIHNlY3Rpb24gMTEpLgoKICBI b3dldmVyLCBpZiB5b3UgY2Vhc2UgYWxsIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UsIHRoZW4g eW91cgpsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMgcmVpbnN0 YXRlZCAoYSkKcHJvdmlzaW9uYWxseSwgdW5sZXNzIGFuZCB1bnRpbCB0aGUgY29weXJpZ2h0IGhv bGRlciBleHBsaWNpdGx5IGFuZApmaW5hbGx5IHRlcm1pbmF0ZXMgeW91ciBsaWNlbnNlLCBhbmQg KGIpIHBlcm1hbmVudGx5LCBpZiB0aGUgY29weXJpZ2h0CmhvbGRlciBmYWlscyB0byBub3RpZnkg eW91IG9mIHRoZSB2aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zCnByaW9yIHRvIDYw IGRheXMgYWZ0ZXIgdGhlIGNlc3NhdGlvbi4KCiAgTW9yZW92ZXIsIHlvdXIgbGljZW5zZSBmcm9t IGEgcGFydGljdWxhciBjb3B5cmlnaHQgaG9sZGVyIGlzCnJlaW5zdGF0ZWQgcGVybWFuZW50bHkg aWYgdGhlIGNvcHlyaWdodCBob2xkZXIgbm90aWZpZXMgeW91IG9mIHRoZQp2aW9sYXRpb24gYnkg c29tZSByZWFzb25hYmxlIG1lYW5zLCB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHlvdSBoYXZlCnJl Y2VpdmVkIG5vdGljZSBvZiB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNlIChmb3IgYW55IHdvcmsp IGZyb20gdGhhdApjb3B5cmlnaHQgaG9sZGVyLCBhbmQgeW91IGN1cmUgdGhlIHZpb2xhdGlvbiBw cmlvciB0byAzMCBkYXlzIGFmdGVyCnlvdXIgcmVjZWlwdCBvZiB0aGUgbm90aWNlLgoKICBUZXJt aW5hdGlvbiBvZiB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIHNlY3Rpb24gZG9lcyBub3QgdGVybWlu YXRlIHRoZQpsaWNlbnNlcyBvZiBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcyBvciBy aWdodHMgZnJvbSB5b3UgdW5kZXIKdGhpcyBMaWNlbnNlLiAgSWYgeW91ciByaWdodHMgaGF2ZSBi ZWVuIHRlcm1pbmF0ZWQgYW5kIG5vdCBwZXJtYW5lbnRseQpyZWluc3RhdGVkLCB5b3UgZG8gbm90 IHF1YWxpZnkgdG8gcmVjZWl2ZSBuZXcgbGljZW5zZXMgZm9yIHRoZSBzYW1lCm1hdGVyaWFsIHVu ZGVyIHNlY3Rpb24gMTAuCgogIDkuIEFjY2VwdGFuY2UgTm90IFJlcXVpcmVkIGZvciBIYXZpbmcg Q29waWVzLgoKICBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlIGlu IG9yZGVyIHRvIHJlY2VpdmUgb3IKcnVuIGEgY29weSBvZiB0aGUgUHJvZ3JhbS4gIEFuY2lsbGFy eSBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQgd29yawpvY2N1cnJpbmcgc29sZWx5IGFzIGEgY29u c2VxdWVuY2Ugb2YgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbgp0byByZWNlaXZlIGEg Y29weSBsaWtld2lzZSBkb2VzIG5vdCByZXF1aXJlIGFjY2VwdGFuY2UuICBIb3dldmVyLApub3Ro aW5nIG90aGVyIHRoYW4gdGhpcyBMaWNlbnNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBwcm9w YWdhdGUgb3IKbW9kaWZ5IGFueSBjb3ZlcmVkIHdvcmsuICBUaGVzZSBhY3Rpb25zIGluZnJpbmdl IGNvcHlyaWdodCBpZiB5b3UgZG8Kbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUs IGJ5IG1vZGlmeWluZyBvciBwcm9wYWdhdGluZyBhCmNvdmVyZWQgd29yaywgeW91IGluZGljYXRl IHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28uCgogIDEwLiBBdXRvbWF0 aWMgTGljZW5zaW5nIG9mIERvd25zdHJlYW0gUmVjaXBpZW50cy4KCiAgRWFjaCB0aW1lIHlvdSBj b252ZXkgYSBjb3ZlcmVkIHdvcmssIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseQpyZWNlaXZl cyBhIGxpY2Vuc2UgZnJvbSB0aGUgb3JpZ2luYWwgbGljZW5zb3JzLCB0byBydW4sIG1vZGlmeSBh bmQKcHJvcGFnYXRlIHRoYXQgd29yaywgc3ViamVjdCB0byB0aGlzIExpY2Vuc2UuICBZb3UgYXJl IG5vdCByZXNwb25zaWJsZQpmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGll cyB3aXRoIHRoaXMgTGljZW5zZS4KCiAgQW4gImVudGl0eSB0cmFuc2FjdGlvbiIgaXMgYSB0cmFu c2FjdGlvbiB0cmFuc2ZlcnJpbmcgY29udHJvbCBvZiBhbgpvcmdhbml6YXRpb24sIG9yIHN1YnN0 YW50aWFsbHkgYWxsIGFzc2V0cyBvZiBvbmUsIG9yIHN1YmRpdmlkaW5nIGFuCm9yZ2FuaXphdGlv biwgb3IgbWVyZ2luZyBvcmdhbml6YXRpb25zLiAgSWYgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVk CndvcmsgcmVzdWx0cyBmcm9tIGFuIGVudGl0eSB0cmFuc2FjdGlvbiwgZWFjaCBwYXJ0eSB0byB0 aGF0CnRyYW5zYWN0aW9uIHdobyByZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHdvcmsgYWxzbyByZWNl aXZlcyB3aGF0ZXZlcgpsaWNlbnNlcyB0byB0aGUgd29yayB0aGUgcGFydHkncyBwcmVkZWNlc3Nv ciBpbiBpbnRlcmVzdCBoYWQgb3IgY291bGQKZ2l2ZSB1bmRlciB0aGUgcHJldmlvdXMgcGFyYWdy YXBoLCBwbHVzIGEgcmlnaHQgdG8gcG9zc2Vzc2lvbiBvZiB0aGUKQ29ycmVzcG9uZGluZyBTb3Vy Y2Ugb2YgdGhlIHdvcmsgZnJvbSB0aGUgcHJlZGVjZXNzb3IgaW4gaW50ZXJlc3QsIGlmCnRoZSBw cmVkZWNlc3NvciBoYXMgaXQgb3IgY2FuIGdldCBpdCB3aXRoIHJlYXNvbmFibGUgZWZmb3J0cy4K CiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyIHJlc3RyaWN0aW9ucyBvbiB0aGUgZXhl cmNpc2Ugb2YgdGhlCnJpZ2h0cyBncmFudGVkIG9yIGFmZmlybWVkIHVuZGVyIHRoaXMgTGljZW5z ZS4gIEZvciBleGFtcGxlLCB5b3UgbWF5Cm5vdCBpbXBvc2UgYSBsaWNlbnNlIGZlZSwgcm95YWx0 eSwgb3Igb3RoZXIgY2hhcmdlIGZvciBleGVyY2lzZSBvZgpyaWdodHMgZ3JhbnRlZCB1bmRlciB0 aGlzIExpY2Vuc2UsIGFuZCB5b3UgbWF5IG5vdCBpbml0aWF0ZSBsaXRpZ2F0aW9uCihpbmNsdWRp bmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0 aGF0CmFueSBwYXRlbnQgY2xhaW0gaXMgaW5mcmluZ2VkIGJ5IG1ha2luZywgdXNpbmcsIHNlbGxp bmcsIG9mZmVyaW5nIGZvcgpzYWxlLCBvciBpbXBvcnRpbmcgdGhlIFByb2dyYW0gb3IgYW55IHBv cnRpb24gb2YgaXQuCgogIDExLiBQYXRlbnRzLgoKICBBICJjb250cmlidXRvciIgaXMgYSBjb3B5 cmlnaHQgaG9sZGVyIHdobyBhdXRob3JpemVzIHVzZSB1bmRlciB0aGlzCkxpY2Vuc2Ugb2YgdGhl IFByb2dyYW0gb3IgYSB3b3JrIG9uIHdoaWNoIHRoZSBQcm9ncmFtIGlzIGJhc2VkLiAgVGhlCndv cmsgdGh1cyBsaWNlbnNlZCBpcyBjYWxsZWQgdGhlIGNvbnRyaWJ1dG9yJ3MgImNvbnRyaWJ1dG9y IHZlcnNpb24iLgoKICBBIGNvbnRyaWJ1dG9yJ3MgImVzc2VudGlhbCBwYXRlbnQgY2xhaW1zIiBh cmUgYWxsIHBhdGVudCBjbGFpbXMKb3duZWQgb3IgY29udHJvbGxlZCBieSB0aGUgY29udHJpYnV0 b3IsIHdoZXRoZXIgYWxyZWFkeSBhY3F1aXJlZCBvcgpoZXJlYWZ0ZXIgYWNxdWlyZWQsIHRoYXQg d291bGQgYmUgaW5mcmluZ2VkIGJ5IHNvbWUgbWFubmVyLCBwZXJtaXR0ZWQKYnkgdGhpcyBMaWNl bnNlLCBvZiBtYWtpbmcsIHVzaW5nLCBvciBzZWxsaW5nIGl0cyBjb250cmlidXRvciB2ZXJzaW9u LApidXQgZG8gbm90IGluY2x1ZGUgY2xhaW1zIHRoYXQgd291bGQgYmUgaW5mcmluZ2VkIG9ubHkg YXMgYQpjb25zZXF1ZW5jZSBvZiBmdXJ0aGVyIG1vZGlmaWNhdGlvbiBvZiB0aGUgY29udHJpYnV0 b3IgdmVyc2lvbi4gIEZvcgpwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJjb250cm9sIiBp bmNsdWRlcyB0aGUgcmlnaHQgdG8gZ3JhbnQKcGF0ZW50IHN1YmxpY2Vuc2VzIGluIGEgbWFubmVy IGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mCnRoaXMgTGljZW5zZS4KCiAgRWFj aCBjb250cmlidXRvciBncmFudHMgeW91IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lh bHR5LWZyZWUKcGF0ZW50IGxpY2Vuc2UgdW5kZXIgdGhlIGNvbnRyaWJ1dG9yJ3MgZXNzZW50aWFs IHBhdGVudCBjbGFpbXMsIHRvCm1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgZm9yIHNhbGUsIGltcG9y dCBhbmQgb3RoZXJ3aXNlIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhlIGNvbnRlbnRzIG9m IGl0cyBjb250cmlidXRvciB2ZXJzaW9uLgoKICBJbiB0aGUgZm9sbG93aW5nIHRocmVlIHBhcmFn cmFwaHMsIGEgInBhdGVudCBsaWNlbnNlIiBpcyBhbnkgZXhwcmVzcwphZ3JlZW1lbnQgb3IgY29t bWl0bWVudCwgaG93ZXZlciBkZW5vbWluYXRlZCwgbm90IHRvIGVuZm9yY2UgYSBwYXRlbnQKKHN1 Y2ggYXMgYW4gZXhwcmVzcyBwZXJtaXNzaW9uIHRvIHByYWN0aWNlIGEgcGF0ZW50IG9yIGNvdmVu YW50IG5vdCB0bwpzdWUgZm9yIHBhdGVudCBpbmZyaW5nZW1lbnQpLiAgVG8gImdyYW50IiBzdWNo IGEgcGF0ZW50IGxpY2Vuc2UgdG8gYQpwYXJ0eSBtZWFucyB0byBtYWtlIHN1Y2ggYW4gYWdyZWVt ZW50IG9yIGNvbW1pdG1lbnQgbm90IHRvIGVuZm9yY2UgYQpwYXRlbnQgYWdhaW5zdCB0aGUgcGFy dHkuCgogIElmIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIGtub3dpbmdseSByZWx5aW5nIG9u IGEgcGF0ZW50IGxpY2Vuc2UsCmFuZCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2Ugb2YgdGhlIHdv cmsgaXMgbm90IGF2YWlsYWJsZSBmb3IgYW55b25lCnRvIGNvcHksIGZyZWUgb2YgY2hhcmdlIGFu ZCB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLCB0aHJvdWdoIGEKcHVibGljbHkgYXZh aWxhYmxlIG5ldHdvcmsgc2VydmVyIG9yIG90aGVyIHJlYWRpbHkgYWNjZXNzaWJsZSBtZWFucywK dGhlbiB5b3UgbXVzdCBlaXRoZXIgKDEpIGNhdXNlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB0 byBiZSBzbwphdmFpbGFibGUsIG9yICgyKSBhcnJhbmdlIHRvIGRlcHJpdmUgeW91cnNlbGYgb2Yg dGhlIGJlbmVmaXQgb2YgdGhlCnBhdGVudCBsaWNlbnNlIGZvciB0aGlzIHBhcnRpY3VsYXIgd29y aywgb3IgKDMpIGFycmFuZ2UsIGluIGEgbWFubmVyCmNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWly ZW1lbnRzIG9mIHRoaXMgTGljZW5zZSwgdG8gZXh0ZW5kIHRoZSBwYXRlbnQKbGljZW5zZSB0byBk b3duc3RyZWFtIHJlY2lwaWVudHMuICAiS25vd2luZ2x5IHJlbHlpbmciIG1lYW5zIHlvdSBoYXZl CmFjdHVhbCBrbm93bGVkZ2UgdGhhdCwgYnV0IGZvciB0aGUgcGF0ZW50IGxpY2Vuc2UsIHlvdXIg Y29udmV5aW5nIHRoZQpjb3ZlcmVkIHdvcmsgaW4gYSBjb3VudHJ5LCBvciB5b3VyIHJlY2lwaWVu dCdzIHVzZSBvZiB0aGUgY292ZXJlZCB3b3JrCmluIGEgY291bnRyeSwgd291bGQgaW5mcmluZ2Ug b25lIG9yIG1vcmUgaWRlbnRpZmlhYmxlIHBhdGVudHMgaW4gdGhhdApjb3VudHJ5IHRoYXQgeW91 IGhhdmUgcmVhc29uIHRvIGJlbGlldmUgYXJlIHZhbGlkLgoKICBJZiwgcHVyc3VhbnQgdG8gb3Ig aW4gY29ubmVjdGlvbiB3aXRoIGEgc2luZ2xlIHRyYW5zYWN0aW9uIG9yCmFycmFuZ2VtZW50LCB5 b3UgY29udmV5LCBvciBwcm9wYWdhdGUgYnkgcHJvY3VyaW5nIGNvbnZleWFuY2Ugb2YsIGEKY292 ZXJlZCB3b3JrLCBhbmQgZ3JhbnQgYSBwYXRlbnQgbGljZW5zZSB0byBzb21lIG9mIHRoZSBwYXJ0 aWVzCnJlY2VpdmluZyB0aGUgY292ZXJlZCB3b3JrIGF1dGhvcml6aW5nIHRoZW0gdG8gdXNlLCBw cm9wYWdhdGUsIG1vZGlmeQpvciBjb252ZXkgYSBzcGVjaWZpYyBjb3B5IG9mIHRoZSBjb3ZlcmVk IHdvcmssIHRoZW4gdGhlIHBhdGVudCBsaWNlbnNlCnlvdSBncmFudCBpcyBhdXRvbWF0aWNhbGx5 IGV4dGVuZGVkIHRvIGFsbCByZWNpcGllbnRzIG9mIHRoZSBjb3ZlcmVkCndvcmsgYW5kIHdvcmtz IGJhc2VkIG9uIGl0LgoKICBBIHBhdGVudCBsaWNlbnNlIGlzICJkaXNjcmltaW5hdG9yeSIgaWYg aXQgZG9lcyBub3QgaW5jbHVkZSB3aXRoaW4KdGhlIHNjb3BlIG9mIGl0cyBjb3ZlcmFnZSwgcHJv aGliaXRzIHRoZSBleGVyY2lzZSBvZiwgb3IgaXMKY29uZGl0aW9uZWQgb24gdGhlIG5vbi1leGVy Y2lzZSBvZiBvbmUgb3IgbW9yZSBvZiB0aGUgcmlnaHRzIHRoYXQgYXJlCnNwZWNpZmljYWxseSBn cmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIFlvdSBtYXkgbm90IGNvbnZleSBhIGNvdmVyZWQK d29yayBpZiB5b3UgYXJlIGEgcGFydHkgdG8gYW4gYXJyYW5nZW1lbnQgd2l0aCBhIHRoaXJkIHBh cnR5IHRoYXQgaXMKaW4gdGhlIGJ1c2luZXNzIG9mIGRpc3RyaWJ1dGluZyBzb2Z0d2FyZSwgdW5k ZXIgd2hpY2ggeW91IG1ha2UgcGF5bWVudAp0byB0aGUgdGhpcmQgcGFydHkgYmFzZWQgb24gdGhl IGV4dGVudCBvZiB5b3VyIGFjdGl2aXR5IG9mIGNvbnZleWluZwp0aGUgd29yaywgYW5kIHVuZGVy IHdoaWNoIHRoZSB0aGlyZCBwYXJ0eSBncmFudHMsIHRvIGFueSBvZiB0aGUKcGFydGllcyB3aG8g d291bGQgcmVjZWl2ZSB0aGUgY292ZXJlZCB3b3JrIGZyb20geW91LCBhIGRpc2NyaW1pbmF0b3J5 CnBhdGVudCBsaWNlbnNlIChhKSBpbiBjb25uZWN0aW9uIHdpdGggY29waWVzIG9mIHRoZSBjb3Zl cmVkIHdvcmsKY29udmV5ZWQgYnkgeW91IChvciBjb3BpZXMgbWFkZSBmcm9tIHRob3NlIGNvcGll cyksIG9yIChiKSBwcmltYXJpbHkKZm9yIGFuZCBpbiBjb25uZWN0aW9uIHdpdGggc3BlY2lmaWMg cHJvZHVjdHMgb3IgY29tcGlsYXRpb25zIHRoYXQKY29udGFpbiB0aGUgY292ZXJlZCB3b3JrLCB1 bmxlc3MgeW91IGVudGVyZWQgaW50byB0aGF0IGFycmFuZ2VtZW50LApvciB0aGF0IHBhdGVudCBs aWNlbnNlIHdhcyBncmFudGVkLCBwcmlvciB0byAyOCBNYXJjaCAyMDA3LgoKICBOb3RoaW5nIGlu IHRoaXMgTGljZW5zZSBzaGFsbCBiZSBjb25zdHJ1ZWQgYXMgZXhjbHVkaW5nIG9yIGxpbWl0aW5n CmFueSBpbXBsaWVkIGxpY2Vuc2Ugb3Igb3RoZXIgZGVmZW5zZXMgdG8gaW5mcmluZ2VtZW50IHRo YXQgbWF5Cm90aGVyd2lzZSBiZSBhdmFpbGFibGUgdG8geW91IHVuZGVyIGFwcGxpY2FibGUgcGF0 ZW50IGxhdy4KCiAgMTIuIE5vIFN1cnJlbmRlciBvZiBPdGhlcnMnIEZyZWVkb20uCgogIElmIGNv bmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3Jl ZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhp cyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2Yg dGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdCBjb252ZXkgYQpjb3ZlcmVkIHdvcmsgc28gYXMg dG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKTGlj ZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNl cXVlbmNlIHlvdSBtYXkKbm90IGNvbnZleSBpdCBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgeW91 IGFncmVlIHRvIHRlcm1zIHRoYXQgb2JsaWdhdGUgeW91CnRvIGNvbGxlY3QgYSByb3lhbHR5IGZv ciBmdXJ0aGVyIGNvbnZleWluZyBmcm9tIHRob3NlIHRvIHdob20geW91IGNvbnZleQp0aGUgUHJv Z3JhbSwgdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggdGhvc2UgdGVybXMgYW5k IHRoaXMKTGljZW5zZSB3b3VsZCBiZSB0byByZWZyYWluIGVudGlyZWx5IGZyb20gY29udmV5aW5n IHRoZSBQcm9ncmFtLgoKICAxMy4gVXNlIHdpdGggdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJs aWMgTGljZW5zZS4KCiAgTm90d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92aXNpb24gb2YgdGhp cyBMaWNlbnNlLCB5b3UgaGF2ZQpwZXJtaXNzaW9uIHRvIGxpbmsgb3IgY29tYmluZSBhbnkgY292 ZXJlZCB3b3JrIHdpdGggYSB3b3JrIGxpY2Vuc2VkCnVuZGVyIHZlcnNpb24gMyBvZiB0aGUgR05V IEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGludG8gYSBzaW5nbGUKY29tYmluZWQgd29y aywgYW5kIHRvIGNvbnZleSB0aGUgcmVzdWx0aW5nIHdvcmsuICBUaGUgdGVybXMgb2YgdGhpcwpM aWNlbnNlIHdpbGwgY29udGludWUgdG8gYXBwbHkgdG8gdGhlIHBhcnQgd2hpY2ggaXMgdGhlIGNv dmVyZWQgd29yaywKYnV0IHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50cyBvZiB0aGUgR05VIEFmZmVy byBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLApzZWN0aW9uIDEzLCBjb25jZXJuaW5nIGludGVyYWN0 aW9uIHRocm91Z2ggYSBuZXR3b3JrIHdpbGwgYXBwbHkgdG8gdGhlCmNvbWJpbmF0aW9uIGFzIHN1 Y2guCgogIDE0LiBSZXZpc2VkIFZlcnNpb25zIG9mIHRoaXMgTGljZW5zZS4KCiAgVGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lv bnMgb2YKdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAg U3VjaCBuZXcgdmVyc2lvbnMgd2lsbApiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2Vu dCB2ZXJzaW9uLCBidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8KYWRkcmVzcyBuZXcgcHJvYmxl bXMgb3IgY29uY2VybnMuCgogIEVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5n IHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlClByb2dyYW0gc3BlY2lmaWVzIHRoYXQgYSBjZXJ0YWlu IG51bWJlcmVkIHZlcnNpb24gb2YgdGhlIEdOVSBHZW5lcmFsClB1YmxpYyBMaWNlbnNlICJvciBh bnkgbGF0ZXIgdmVyc2lvbiIgYXBwbGllcyB0byBpdCwgeW91IGhhdmUgdGhlCm9wdGlvbiBvZiBm b2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGVpdGhlciBvZiB0aGF0IG51bWJlcmVk CnZlcnNpb24gb3Igb2YgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlCkZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVy c2lvbiBudW1iZXIgb2YgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB5b3UgbWF5IGNo b29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZApieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLgoKICBJZiB0aGUgUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIHByb3h5IGNhbiBkZWNp ZGUgd2hpY2ggZnV0dXJlCnZlcnNpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBjYW4gYmUgdXNlZCwgdGhhdCBwcm94eSdzCnB1YmxpYyBzdGF0ZW1lbnQgb2YgYWNjZXB0YW5j ZSBvZiBhIHZlcnNpb24gcGVybWFuZW50bHkgYXV0aG9yaXplcyB5b3UKdG8gY2hvb3NlIHRoYXQg dmVyc2lvbiBmb3IgdGhlIFByb2dyYW0uCgogIExhdGVyIGxpY2Vuc2UgdmVyc2lvbnMgbWF5IGdp dmUgeW91IGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50CnBlcm1pc3Npb25zLiAgSG93ZXZlciwgbm8g YWRkaXRpb25hbCBvYmxpZ2F0aW9ucyBhcmUgaW1wb3NlZCBvbiBhbnkKYXV0aG9yIG9yIGNvcHly aWdodCBob2xkZXIgYXMgYSByZXN1bHQgb2YgeW91ciBjaG9vc2luZyB0byBmb2xsb3cgYQpsYXRl ciB2ZXJzaW9uLgoKICAxNS4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4KCiAgVEhFUkUgSVMgTk8g V0FSUkFOVFkgRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWQpBUFBM SUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOIE9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUg Q09QWVJJR0hUCkhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMgUFJPVklERSBUSEUgUFJPR1JB TSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkKT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQg T1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sClRIRSBJTVBMSUVEIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK UFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUyBUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFO Q0UgT0YgVEhFIFBST0dSQU0KSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFIFBST0dSQU0gUFJPVkUg REVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GCkFMTCBORUNFU1NBUlkgU0VSVklDSU5H LCBSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTYuIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LgoK ICBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVE IFRPIElOIFdSSVRJTkcKV0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVSIFBB UlRZIFdITyBNT0RJRklFUyBBTkQvT1IgQ09OVkVZUwpUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQg QUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsIElOQ0xVRElORyBBTlkKR0VORVJB TCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBP VVQgT0YgVEhFClVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIExPU1MgT0YKREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElO QUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWSBZT1UgT1IgVEhJUkQKUEFSVElFUyBPUiBB IEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUiBQUk9HUkFN UyksCkVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBP RiBUSEUgUE9TU0lCSUxJVFkgT0YKU1VDSCBEQU1BR0VTLgoKICAxNy4gSW50ZXJwcmV0YXRpb24g b2YgU2VjdGlvbnMgMTUgYW5kIDE2LgoKICBJZiB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50eSBh bmQgbGltaXRhdGlvbiBvZiBsaWFiaWxpdHkgcHJvdmlkZWQKYWJvdmUgY2Fubm90IGJlIGdpdmVu IGxvY2FsIGxlZ2FsIGVmZmVjdCBhY2NvcmRpbmcgdG8gdGhlaXIgdGVybXMsCnJldmlld2luZyBj b3VydHMgc2hhbGwgYXBwbHkgbG9jYWwgbGF3IHRoYXQgbW9zdCBjbG9zZWx5IGFwcHJveGltYXRl cwphbiBhYnNvbHV0ZSB3YWl2ZXIgb2YgYWxsIGNpdmlsIGxpYWJpbGl0eSBpbiBjb25uZWN0aW9u IHdpdGggdGhlClByb2dyYW0sIHVubGVzcyBhIHdhcnJhbnR5IG9yIGFzc3VtcHRpb24gb2YgbGlh YmlsaXR5IGFjY29tcGFuaWVzIGEKY29weSBvZiB0aGUgUHJvZ3JhbSBpbiByZXR1cm4gZm9yIGEg ZmVlLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgog ICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMK CiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9m IHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRv IGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUg Y2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBz bywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNh ZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBt b3N0IGVmZmVjdGl2ZWx5CnN0YXRlIHRoZSBleGNsdXNpb24gb2Ygd2FycmFudHk7IGFuZCBlYWNo IGZpbGUgc2hvdWxkIGhhdmUgYXQgbGVhc3QKdGhlICJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9p bnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuCgogICAgPG9uZSBsaW5lIHRv IGdpdmUgdGhlIHByb2dyYW0ncyBuYW1lIGFuZCBhIGJyaWVmIGlkZWEgb2Ygd2hhdCBpdCBkb2Vz Lj4KICAgIENvcHlyaWdodCAoQykgPHllYXI+ICA8bmFtZSBvZiBhdXRob3I+CgogICAgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgogICAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KCiAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5 b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCiAgSWYgdGhlIHByb2dyYW0gZG9lcyB0 ZXJtaW5hbCBpbnRlcmFjdGlvbiwgbWFrZSBpdCBvdXRwdXQgYSBzaG9ydApub3RpY2UgbGlrZSB0 aGlzIHdoZW4gaXQgc3RhcnRzIGluIGFuIGludGVyYWN0aXZlIG1vZGU6CgogICAgPHByb2dyYW0+ ICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgogICAgVGhpcyBwcm9ncmFt IGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hv dyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byBy ZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBj JyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBz aG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgeW91ciBwcm9ncmFtJ3MgY29tbWFuZHMKbWlnaHQg YmUgZGlmZmVyZW50OyBmb3IgYSBHVUkgaW50ZXJmYWNlLCB5b3Ugd291bGQgdXNlIGFuICJhYm91 dCBib3giLgoKICBZb3Ugc2hvdWxkIGFsc28gZ2V0IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3b3Jr IGFzIGEgcHJvZ3JhbW1lcikgb3Igc2Nob29sLAppZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0 IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYgbmVjZXNzYXJ5LgpGb3IgbW9yZSBpbmZv cm1hdGlvbiBvbiB0aGlzLCBhbmQgaG93IHRvIGFwcGx5IGFuZCBmb2xsb3cgdGhlIEdOVSBHUEws IHNlZQo8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFt CmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0 aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxp bmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlz IGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1Ymxp YyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVh ZAo8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy93aHktbm90LWxncGwuaHRtbD4uCgAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA --=-=-= Content-Type: text/plain -- Best wishes H. Dieter Wilhelm Zwingenberg, Germany --=-=-=-- From unknown Thu Jun 19 16:24:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39609: 26.3; Packaging system: Package documentation in the *Help* buffer Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 25 Nov 2020 07:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39609 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo To: "H. Dieter Wilhelm" Cc: 39609@debbugs.gnu.org Received: via spool by 39609-submit@debbugs.gnu.org id=B39609.160628789027304 (code B ref 39609); Wed, 25 Nov 2020 07:05:02 +0000 Received: (at 39609) by debbugs.gnu.org; 25 Nov 2020 07:04:50 +0000 Received: from localhost ([127.0.0.1]:34007 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khorC-00076K-D7 for submit@debbugs.gnu.org; Wed, 25 Nov 2020 02:04:50 -0500 Received: from quimby.gnus.org ([95.216.78.240]:33938) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khorA-000766-OK for 39609@debbugs.gnu.org; Wed, 25 Nov 2020 02:04:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=WEBzJ6446FKwolBiCqt6YrtzCokeNC1g2qFbjsZfXVg=; b=bsLcLwWQcXDCzPWXPFq+BC+Tzc Dosw1FbqtCposOEaoFLhJPygha1PO6rmG3uRaK8Z18vLLkk20NRE5ykAdLTJCstnSYdVGqUhLJH80 iruT+naGzFlgI9d2K/IGMdva2eP/wsZLAS5vnS5/gmFqlOMO06MFEROSkfOUOBU79wIM=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1khor1-0004U2-1y; Wed, 25 Nov 2020 08:04:43 +0100 From: Lars Ingebrigtsen References: <86y2t4zy00.fsf@duenenhof-wilhelm.de> <87tuuf1rf3.fsf@gnus.org> <86tutelagn.fsf@duenenhof-wilhelm.de> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAElBMVEUfHxglJRpMSDZY WUzCnHb///86tvQhAAAAAWJLR0QF+G/pxwAAAAd0SU1FB+QLGQY4HBzTRjYAAAGvSURBVDjLbZSB saQgDIYDbgEBLQDiFaCEAvZW+q/pEmAV3rvMLO7km/8PgSgYJ+HpiX1niQPqg7nmYmfR4QmpShwZ MC4iyF9NPKCI6rxUu+ADoijUITof6XUIgAjUFAgAshiDr3cD3coBVuAEICAKANeJAvltb13FagYG tuMBflAoMA3c1asCt7reVror1AVWXb7Fawba2oK6lQ1uSBujQPomt/2t5b8AUBUa2znYqDdJ7xUk mKMpEDbGKf9Ycfhp1UE6alW5i7rLG6zHWx/27AfXgRx/qNVX/gWQ5Zl2jhMA8EGO6FVSPn8oTr8g 5HLlT3yAHkawAv6Uki+awWk92nJxvniwMk5GIgSxSlyYfLxrIDCE3eTy2QsnisOuMrqFi3gpoKlz WEoNne8BwAlbAxcTjyBKex3wBGAEoYN22UvNZr54F8WqYG/1O5BOOmjzeSsyxzp2dw3TCsjRhxkA N0C/gM8VON+Af6ZDjjfRaeqwTkDe+RQJ/wMsJ0kbuMGCAdCCNSlZIggzkE8DxOQTu4QK3GAFcnmG qJQPLLAOHx5i1ual0w+Dvb843yFs4n/BFVwBr38MeAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0x MS0yNVQwNjo1NjoyOCswMDowML0a2v8AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMTEtMjVUMDY6 NTY6MjgrMDA6MDDMR2JDAAAAAElFTkSuQmCC X-Now-Playing: Modern English's _Mesh & Lace_: "Grief" Date: Wed, 25 Nov 2020 08:04:38 +0100 In-Reply-To: <86tutelagn.fsf@duenenhof-wilhelm.de> (H. Dieter Wilhelm's message of "Tue, 24 Nov 2020 22:19:04 +0100") Message-ID: <87h7pd29yx.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: "H. Dieter Wilhelm" writes: >> Do you have a precise recipe to reproduce it, starting from "emacs -Q"? > > I prepared a multi-file package for you. Under Emacs 26.3 or earlier > you won't see any "long description" at all (unles [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) "H. Dieter Wilhelm" writes: >> Do you have a precise recipe to reproduce it, starting from "emacs -Q"? > > I prepared a multi-file package for you. Under Emacs 26.3 or earlier > you won't see any "long description" at all (unless you include a > PACKAGE-NAME-readme.txt in the package archive). Under 27.1 it shows > now the ;;; Commentary: section of the PACKAGE-NAME.el file. But NOT > the content of the accompanying README! The package didn't really clarify anything. Could you instead give a precise recipe to reproduce the bug, starting from "emacs -Q"? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From unknown Thu Jun 19 16:24:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39609: 26.3; Packaging system: Package documentation in the *Help* buffer Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 27 Nov 2020 08:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39609 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo To: "H. Dieter Wilhelm" Cc: 39609@debbugs.gnu.org Received: via spool by 39609-submit@debbugs.gnu.org id=B39609.160646704818569 (code B ref 39609); Fri, 27 Nov 2020 08:51:01 +0000 Received: (at 39609) by debbugs.gnu.org; 27 Nov 2020 08:50:48 +0000 Received: from localhost ([127.0.0.1]:43922 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiZSq-0004pR-3S for submit@debbugs.gnu.org; Fri, 27 Nov 2020 03:50:48 -0500 Received: from quimby.gnus.org ([95.216.78.240]:59222) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiZSn-0004pC-5x for 39609@debbugs.gnu.org; Fri, 27 Nov 2020 03:50:46 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Xzs4ULLxKFi2wdHYo51y+p4rRLJEIedbMI0PCxbwyBI=; b=mzlTLmYKrwWiIAPqtsBxdy3S3U riVbVGiqDtmy+EuKEwCpCiHBB3HGExfHMj7lSkSIYQ19cwJgIKZubQ6fRuEy3PG8CsoTmGwDOKMxf nxMycGXJe/J10pKd/ZZ8xzW7JDUSLfLZAXK9dq2HqFs73M1TGidFNuosasC7wIJU9Pyg=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kiZSd-0005Mk-2J; Fri, 27 Nov 2020 09:50:38 +0100 From: Lars Ingebrigtsen References: <86y2t4zy00.fsf@duenenhof-wilhelm.de> <87tuuf1rf3.fsf@gnus.org> <86tutelagn.fsf@duenenhof-wilhelm.de> <87h7pd29yx.fsf@gnus.org> <86h7pcknk9.fsf@duenenhof-wilhelm.de> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAElBMVEVCPDwuKSlbVFS9 trGDfHv///+ViheNAAAAAWJLR0QF+G/pxwAAAAd0SU1FB+QLGwgwJSuYobcAAAGFSURBVDjLdZOL kcQgCIbRbUCuAkOsIFiBsf+aDvC9c+fM7kQ+f54KLgAgovzL8tCW7rAvs0cAigP8uG4GIor6U0QA n4cusvPU1wCpPHyhOhpEDwF+fuipl0XvVvsCszhLyw8/TaEmZwn7FUABNIWQGX16bK52e+0ARuRT Ef+w0z/nBYQDwJfCz1ZIg9sGXDjsUwLW2QbCHqtVbvsLcSsF+jAMhAO40H1H0c7KS0tXp0HR4QJV bWipEbmwA2eOJAUBa7wKeukSeCtDAIQw2FagAgmB7a55mF1QILm41nxaklJ1eN2Jz3G7XuvegudO fOsuTsnNeQ1hB8T8mCZ6HZQbrsDfmR9LQQFatyyvIFlyzfMmiqJ5C5RKYo4T4HogldkyoAlCA7cA Ljqc46klSqrgvIMgmpuKgpeZ1uO0B5LTm5mruVtAAt5q59cymMAakRXwCVItRK8dl/Vsiiokqf9q 0XEn6uzNpfKzA2mVOBNRfTMdADSM10B0ACk+FRvrN5CHW+el/gXhhmNfY/h3mgAAACV0RVh0ZGF0 ZTpjcmVhdGUAMjAyMC0xMS0yN1QwODo0ODozNyswMDowMCX5bCgAAAAldEVYdGRhdGU6bW9kaWZ5 ADIwMjAtMTEtMjdUMDg6NDg6MzcrMDA6MDBUpNSUAAAAAElFTkSuQmCC X-Now-Playing: Pram's _Across The Meridian_: "Shimmer And Disappear" Date: Fri, 27 Nov 2020 09:50:33 +0100 In-Reply-To: <86h7pcknk9.fsf@duenenhof-wilhelm.de> (H. Dieter Wilhelm's message of "Thu, 26 Nov 2020 18:58:14 +0100") Message-ID: <87ft4vji92.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: (Please keep the debbugs address in the Cc's -- otherwise the message won't reach the bug tracker.) "H. Dieter Wilhelm" writes: > I'm sorry I should have made it clear that the problem occurs most > clearly for packages which are not installed from Gnu Elpa or other > package archives. After installing from a package archive t [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) (Please keep the debbugs address in the Cc's -- otherwise the message won't reach the bug tracker.) "H. Dieter Wilhelm" writes: > I'm sorry I should have made it clear that the problem occurs most > clearly for packages which are not installed from Gnu Elpa or other > package archives. After installing from a package archive the > documentation is not taken out of the package README, despite the Elisp > documentation in (elisp) Multi-file Packages. > > So please check this with Emacs- Q (possibly in a sandboxed > environment), do (package-initialize) and install the attached package. > To that end please extract the tar archive to a DIRECTORY and M-x > package-install-file DIRECTORY. Then you'll see that the content of C-h > P inform is not the content of the package's README. For Emacs-26.3 > you'll see no documentation at all and for Emacs-27.1 you'll see > inform.el's ;;; Commentary section. > > Thank you > > Dieter > > PS: The inform package is now available via Melpa, just in case... OK, so the test case is emacs -Q M-x list-packages then install "inform" from Melpa And then C-h P inform RET ? From unknown Thu Jun 19 16:24:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39609: 26.3; Packaging system: Package documentation in the *Help* buffer Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Jan 2021 16:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39609 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo To: "H. Dieter Wilhelm" Cc: 39609@debbugs.gnu.org Received: via spool by 39609-submit@debbugs.gnu.org id=B39609.161038097315946 (code B ref 39609); Mon, 11 Jan 2021 16:03:02 +0000 Received: (at 39609) by debbugs.gnu.org; 11 Jan 2021 16:02:53 +0000 Received: from localhost ([127.0.0.1]:57993 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyzef-00048w-Al for submit@debbugs.gnu.org; Mon, 11 Jan 2021 11:02:53 -0500 Received: from quimby.gnus.org ([95.216.78.240]:54808) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyzea-00043B-Qd for 39609@debbugs.gnu.org; Mon, 11 Jan 2021 11:02:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=BYES436ixBr9tUn3mkGF4IUdc8ggjx8HyvzD/jVONGw=; b=SQNB7U/XSBw/lYB1NgM3fZ8NAj tiyEN1nuGGs8Afakm3RZjJ7HLN3XRB1BYBHdY3/lQs72QCl+OZQans8cFl4aI+k0TpodpAQ+CN7UH Y2hM3suXw3rThwNk8pcst/hCKEPw2JOEX4h7cyV6Vup33+ZLNiEWlTGhZwPuRHd4sxhQ=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kyzeS-0000J4-OF; Mon, 11 Jan 2021 17:02:43 +0100 From: Lars Ingebrigtsen References: <86y2t4zy00.fsf@duenenhof-wilhelm.de> <87tuuf1rf3.fsf@gnus.org> <86tutelagn.fsf@duenenhof-wilhelm.de> <87h7pd29yx.fsf@gnus.org> <86h7pcknk9.fsf@duenenhof-wilhelm.de> <87ft4vji92.fsf@gnus.org> X-Now-Playing: Continuous Cool's _Fabric Presents: Octo Octa & Eris Drew_: "Automatic" Date: Mon, 11 Jan 2021 17:02:39 +0100 In-Reply-To: <87ft4vji92.fsf@gnus.org> (Lars Ingebrigtsen's message of "Fri, 27 Nov 2020 09:50:33 +0100") Message-ID: <87k0sjea1s.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Lars Ingebrigtsen writes: > OK, so the test case is > > emacs -Q > M-x list-packages > then install "inform" from Melpa > And then > > C-h P inform RET > > ? More information was requested, but no response was given within a month, so I'm closing this bug report. If further progress can be made, please respond to this email and we'll reopen the bug report. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Lars Ingebrigtsen writes: > OK, so the test case is > > emacs -Q > M-x list-packages > then install "inform" from Melpa > And then > > C-h P inform RET > > ? More information was requested, but no response was given within a month, so I'm closing this bug report. If further progress can be made, please respond to this email and we'll reopen the bug report. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 11:02:56 2021 Received: (at control) by debbugs.gnu.org; 11 Jan 2021 16:02:57 +0000 Received: from localhost ([127.0.0.1]:57996 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyzei-0004Aq-M1 for submit@debbugs.gnu.org; Mon, 11 Jan 2021 11:02:56 -0500 Received: from quimby.gnus.org ([95.216.78.240]:54822) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyzeh-000477-Fb for control@debbugs.gnu.org; Mon, 11 Jan 2021 11:02:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=up9xKELNRCMpPeoJpvWejFMttYgriTN9UX27czZLs/w=; b=bNujiwrNvbG6q4Q0Q109O9SfLI r7stAjpxq/7nGLys3mKxdni3wm28DzF8UTIr1aUlhRPxSRfvb8YNDUYSPTfYHvjoNpw5kJuu+blap i3AghvWhO9mM/HFLigey5CWLZHbiFCaqYlVVDfQiqIrgwglFqKx/qFcNa63Uitv75BOA=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kyzeZ-0000JF-QN for control@debbugs.gnu.org; Mon, 11 Jan 2021 17:02:49 +0100 Date: Mon, 11 Jan 2021 17:02:46 +0100 Message-Id: <87im83ea1l.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #39609 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 39609 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) close 39609 quit