Warning, /utilities/kwalletmanager/doc/index.docbook is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" ?>
0002 <!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
0003   <!ENTITY % addindex "IGNORE">
0004   <!ENTITY % English "INCLUDE">
0005 ]>
0006 
0007 <book id="kwallet5" lang="&language;">
0008 <bookinfo>
0009 <title>The &kwallet5; Handbook</title>
0010 
0011 <authorgroup>
0012 <author>
0013 &George.Staikos; &George.Staikos.mail;
0014 </author>
0015 <author>
0016 &Lauri.Watts; &Lauri.Watts.mail;
0017 </author>
0018 <othercredit role="developer">
0019 <firstname>George</firstname><surname>Staikos</surname>
0020 <affiliation><address>&George.Staikos.mail;</address></affiliation>
0021 <contrib>Developer</contrib>
0022 </othercredit>
0023 <!-- TRANS:ROLES_OF_TRANSLATORS -->
0024 </authorgroup>
0025 
0026 <legalnotice>&FDLNotice;</legalnotice>
0027 
0028 <date>2016-07-05</date>
0029 <releaseinfo>Applications 16.04</releaseinfo>
0030 
0031 <abstract>
0032 <para>
0033 The wallet subsystem provides a convenient and secure way to manage all your
0034 passwords.</para>
0035 
0036 </abstract>
0037 
0038 <keywordset>
0039 <keyword>KDE</keyword>
0040 <keyword>Kwallet</keyword>
0041 <keyword>passwords</keyword>
0042 <keyword>forms</keyword>
0043 </keywordset>
0044 
0045 </bookinfo>
0046 
0047 <chapter id="introduction">
0048 <title>Introduction</title>
0049 
0050 <para>Computer users have a very large amount of data to manage, some of
0051 which is sensitive.  In particular, you will typically have many passwords
0052 to manage.  Remembering them is difficult and writing them down on paper or in
0053 a text file is insecure.</para>
0054 
0055 <para>&kwallet5; provides a secure way to store passwords and other secret information,
0056 allowing the user to remember only a single password instead of numerous different passwords and credentials.
0057 </para>
0058 
0059 <sect1 id="kwallet-create">
0060 
0061 <title>Create a Wallet</title>
0062 
0063 <para>Wallet is a password storage. It is usually sufficient to have just one wallet secured by one master password but you can organize your large collection of passwords by wallets using &kwalletmanager5;.</para>
0064 
0065 <para>By default a wallet named <guilabel>kdewallet</guilabel> will be used to store your passwords.
0066 This wallet is secured by your login password and will automatically be opened at login,
0067 if kwallet_pam is installed and properly configured. On certain distros (&eg; Archlinux) kwallet_pam is not installed by default</para>
0068 
0069 
0070 <para>Other wallets have to be opened manually.</para>
0071 
0072 <para>There are two ways to create a new wallet:</para>
0073 
0074 <itemizedlist>
0075 <listitem><para>Use the menu item <menuchoice><guimenu>File</guimenu><guimenuitem>New
0076 Wallet</guimenuitem></menuchoice> in the &kwalletmanager5;</para></listitem>
0077 
0078 <listitem><para>Use the <guibutton>New</guibutton> button in the &systemsettings; module
0079 <guilabel>KDE Wallet</guilabel></para></listitem>
0080 </itemizedlist>
0081 
0082 <para>If you have not created a wallet yet, see section <link linkend="kwallet-using">Using &kwallet5;</link>.
0083 </para>
0084 
0085 <para>&kwallet5; offers two different ways to store your data:</para>
0086 
0087 <screenshot>
0088 <screeninfo>Select encryption</screeninfo>
0089 <mediaobject>
0090 <imageobject><imagedata fileref="wallet-encryption-selection.png" format="PNG"/></imageobject>
0091 <textobject><phrase>Select encryption</phrase></textobject>
0092 </mediaobject>
0093 </screenshot>
0094 
0095 <variablelist>
0096 
0097 <varlistentry>
0098 <term>Blowfish encryption</term>
0099 <listitem>
0100 <para>&kwallet5; saves this sensitive data for you in a strongly encrypted
0101 file, accessible by all applications, and protected with a master
0102 password that you define.</para>
0103 
0104 <screenshot>
0105 <screeninfo>Create a blowfish encrypted wallet</screeninfo>
0106 <mediaobject>
0107 <imageobject><imagedata fileref="first-open-request.png" format="PNG"/></imageobject>
0108 <textobject><phrase>Create a blowfish encrypted wallet</phrase></textobject>
0109 </mediaobject>
0110 </screenshot>
0111 
0112 <para>The data is encrypted with the
0113 <ulink url="http://www.schneier.com/blowfish.html">Blowfish symmetric block cipher algorithm</ulink>,
0114 the algorithm key is derived from the
0115 <ulink url="http://www.ietf.org/rfc/rfc3174.txt">SHA-1 hash</ulink>
0116 of the password, with a key length of 156 bits (20 bytes).
0117 The data into the wallet file is also hashed with SHA-1 and checked
0118 before the data is deciphered and accessible by the applications.
0119 </para>
0120 </listitem>
0121 </varlistentry>
0122 
0123 <varlistentry>
0124 <term>GPG encryption</term>
0125 <listitem>
0126 <para>GnuPG offers some very strong encryption algorithms and uses passphrase protected long keys.</para>
0127 
0128 <screenshot>
0129 <screeninfo>No GPG key found</screeninfo>
0130 <mediaobject>
0131 <imageobject><imagedata fileref="error-nokey.png" format="PNG"/></imageobject>
0132 <textobject><phrase>No GPG key found</phrase></textobject>
0133 </mediaobject>
0134 </screenshot>
0135 <para>The screenshots above show the case where an encryption capable GPG key was not
0136 found on the system. Please use applications like &kgpg; or &kleopatra; to create a key and try again.</para>
0137 
0138 <para>If a GPG key was found you will get the next dialog where you can select a key to use for your new wallet.
0139 </para>
0140 <screenshot>
0141 <screeninfo>Select an encryption key</screeninfo>
0142 <mediaobject>
0143 <imageobject><imagedata fileref="key-selection.png" format="PNG"/></imageobject>
0144 <textobject><phrase>Select an encryption key</phrase></textobject>
0145 </mediaobject>
0146 </screenshot>
0147 
0148 <para>&kwallet5; will now use GPG when storing wallets and when opening them.
0149 The passphrase dialog only shows once. Even if the wallet is closed after initial open,
0150 subsequent opening will occur silently during the same session.
0151 </para>
0152 
0153 <para>
0154 The same session can handle simultaneously both file formats. &kwallet5; will transparently detect
0155 the file format and load the correct backend to handle it.</para>
0156 
0157 <para>
0158 To use your sensitive data from your classic wallet with the new backend follow these steps:</para>
0159 
0160 <itemizedlist>
0161 <listitem><para>Create a new GPG based wallet</para></listitem>
0162 <listitem><para>Launch &kwalletmanager5; using &krunner; (<keycombo>&Alt; <keycap>F2</keycap></keycombo>)
0163 or other application launcher (menu) and select your old wallet.
0164 Then choose <menuchoice><guimenu>File</guimenu>
0165 <guimenuitem>Export as encrypted</guimenuitem></menuchoice> to create an archive file with your sensitive data.
0166 </para></listitem>
0167 <listitem><para>Select the new GPG based wallet then choose <menuchoice><guimenu>File</guimenu>
0168 <guimenuitem>Import encrypted</guimenuitem></menuchoice> and select the file you just saved.</para>
0169 </listitem>
0170 
0171 <listitem><para>Go to &systemsettings; <menuchoice><guimenu>Account Details</guimenu> <guimenuitem>KDE
0172 Wallet</guimenuitem></menuchoice> and select the newly created GPG based wallet from the <guilabel>Select
0173 wallet to use as default</guilabel> combobox.
0174 </para></listitem>
0175 </itemizedlist>
0176 
0177 <para>Alternatively use <guimenuitem>Import a wallet</guimenuitem>
0178 but in that case you have to select the <filename class="extension">.kwl</filename> file corresponding
0179 to your old wallet, located in the folder <filename class="directory">kwalletd</filename>
0180 in <userinput>qtpaths --paths GenericDataLocation</userinput>.
0181 </para>
0182 </listitem>
0183 </varlistentry>
0184 
0185 </variablelist>
0186 
0187 <tip>
0188 <para>&kwallet5; supports multiple wallets, so
0189 for the most secure operation, you should use one wallet for local
0190 passwords, and another for network passwords and form data.  You can
0191 configure this behavior in the &kwallet5; &systemsettings; module, however
0192 the default setting is to store everything in one wallet named <guilabel>kdewallet</guilabel>.</para>
0193 </tip>
0194 
0195 <para>A wallet is by default closed, which means that you must supply
0196 a password to open it. Once the wallet is opened, the contents can
0197 be read by any user process, so this may be a security issue.</para>
0198 </sect1>
0199 
0200 <sect1 id="kwallet-using">
0201 <title>Using &kwallet5;</title>
0202 
0203 <para>If you visit &eg; the &kde; bugtracker and enter the login data for
0204 the first time, a dialog pops up offering to store the password in an
0205 encrypted wallet:</para>
0206 
0207 <screenshot>
0208 <screeninfo>Request to save login information</screeninfo>
0209 <mediaobject>
0210 <imageobject><imagedata fileref="save-login-information.png" format="PNG"/></imageobject>
0211 <textobject><phrase>Request to save login information</phrase></textobject>
0212 </mediaobject>
0213 </screenshot>
0214 
0215 <para>If you want to store this information, select <guibutton>Store</guibutton>
0216 to proceed. In case you did not create a wallet so far, the next dialog asks for
0217 the encryption backend and creates a wallet named kdewallet.
0218 </para>
0219 
0220 <para>Next time you visit the same website again, the application retrieves the login data
0221 from an open wallet and prefills the forms with these secrets.</para>
0222 
0223 <screenshot>
0224 <screeninfo>Prefilled login information</screeninfo>
0225 <mediaobject>
0226 <imageobject><imagedata fileref="prefilled-forms.png" format="PNG"/></imageobject>
0227 <textobject><phrase>Prefilled login information</phrase></textobject>
0228 </mediaobject>
0229 </screenshot>
0230 
0231 <para>If the wallet is closed the application requests to open the wallet.
0232 Enter the wallet password and click the <guibutton>Open</guibutton> button.</para>
0233 
0234 <screenshot>
0235 <screeninfo>Request to open a wallet</screeninfo>
0236 <mediaobject>
0237 <imageobject><imagedata fileref="openwallet-request.png" format="PNG"/></imageobject>
0238 <textobject><phrase>Request to open a wallet</phrase></textobject>
0239 </mediaobject>
0240 </screenshot>
0241 
0242 <para>This connects the application to the wallet, enables it to read the login data from the wallet
0243 and to restore the login information for this website. Once an application is connected to
0244 the wallet, it can automatically restore any login information stored in the wallet.</para>
0245 
0246 </sect1>
0247 
0248 </chapter>
0249 
0250 <chapter id="kwalletmanager5">
0251 <title>&kwalletmanager5;</title>
0252 
0253 <para>&kwalletmanager5; serves a number of functions.  Firstly it allows you to see if
0254 any wallets are open, which wallets those are, and which applications are
0255 using each wallet.  You can disconnect an application's access to a wallet
0256 from within the &kwalletmanager5;.</para>
0257 
0258 <para>You may also manage the wallets installed on the system, creating and
0259 deleting wallets and manipulating their contents (changing keys, ...).</para>
0260 
0261 <para>The &kwalletmanager5; application is launched with <menuchoice>
0262 <guimenu>Applications</guimenu><guisubmenu>System</guisubmenu>
0263 <guimenuitem>Wallet Management Tool</guimenuitem></menuchoice> from the
0264 application launcher.
0265 Alternatively start &krunner; with shortcut <keycombo
0266 action="simul">&Alt;<keycap>F2</keycap></keycombo> and enter
0267 <command>kwalletmanager5</command>.</para>
0268 
0269 <para>Click once on the system tray wallet icon to display the &kwalletmanager5;
0270 window.</para>
0271 <para>
0272 <screenshot>
0273 <screeninfo>Main window with one wallet</screeninfo>
0274 <mediaobject>
0275 <imageobject>
0276 <imagedata fileref="kwalletmanager.png"/>
0277 </imageobject>
0278 <textobject>
0279 <phrase>Main window with one wallet</phrase>
0280 </textobject>
0281 <caption><para>Main window with one wallet</para></caption>
0282 </mediaobject>
0283 </screenshot>
0284 </para>
0285 
0286 <!--FIXME
0287 How to get assistant "First Use"? kwalletwizardpageintro.ui
0288 Last code change with http://websvn.kde.org/?view=revision&revision=882694
0289 see also https://bugs.kde.org/show_bug.cgi?id=290309
0290 -->
0291 <sect1 id="kwalletmanager-wallet-window">
0292 <title>The Wallet Window</title>
0293 
0294 <para>If you have more than one wallet all available wallets are shown on the left.</para>
0295 
0296 <para>Clicking on a wallet in the &kwalletmanager5; window will display
0297 that wallet's status and the contents of an opened wallet. A wallet may contain any number
0298 of folders, which allow storing of password information. By default a wallet
0299 will contain folders named Form Data and Passwords.
0300 </para>
0301 
0302 <screenshot>
0303 <screeninfo>Main window with two wallets</screeninfo>
0304 <mediaobject>
0305 <imageobject>
0306 <imagedata fileref="kwallet-edit.png"/>
0307 </imageobject>
0308 <textobject>
0309 <phrase>Main window with two wallets</phrase>
0310 </textobject>
0311 <caption><para>Main window with two wallets</para></caption>
0312 </mediaobject>
0313 </screenshot>
0314 <para>Use <guibutton>Open</guibutton> to display the content of a closed wallet.
0315 You will be requested to enter the master password.</para>
0316 
0317 <sect2>
0318 <title>Contents tab</title>
0319 
0320 <para>The <guilabel>Contents</guilabel> tab has three sections:</para>
0321 
0322 <itemizedlist>
0323 <listitem><para>A search line to filter the items of the current
0324 wallet</para></listitem>
0325 <listitem><para>The tree view of the folders contained in the wallet.
0326 Click the <guiicon>&gt;</guiicon> / <guiicon>v</guiicon> icons to expand or collapse
0327 the tree view.</para></listitem>
0328 <listitem><para>The contents of the selected folder entry at the right side.
0329 By default the password and value are hidden. To display and edit them enable
0330 <guilabel>Show values</guilabel> or click the <guilabel>Show Contents</guilabel> button.
0331 </para></listitem>
0332 </itemizedlist>
0333 
0334 <para>Folders may be added or deleted via the context menu, and selecting a folder will update
0335 the folder entry list and the summary display.  Selecting a folder entry
0336 will update the entry contents pane, and allow you to edit that
0337 entry.</para>
0338 
0339 <para>Entries may also be created, renamed or deleted via the context menu for the
0340 folder contents.</para>
0341 
0342 <para>All folders and entries may be dragged and dropped into other wallets
0343 or folders respectively.  This allows a user to easily package up a new
0344 wallet for transfer to another environment.  For instance, a new wallet
0345 could be created and copied onto a removable flash memory device.  Important
0346 passwords could be transferred there, so you have them available in other
0347 locations.</para>
0348 
0349 <sect3 id="kwallet-import-export">
0350 <title>Import and Export</title>
0351 <para>If you want to transfer your secrets to another device or computer use
0352 the actions in the <guimenu>File</guimenu> menu. With <guimenuitem>Export as encrypted</guimenuitem>
0353 wallets can be exported into an encrypted archive file.
0354 Importing this archive file with <guimenuitem>Import encrypted</guimenuitem>
0355 you have to provide the master password of the wallet.
0356 </para>
0357 <para>Alternatively a <filename class="extension">.xml</filename> file can be used for transferring
0358 a wallet. Keep in mind that all secrets are stored as plain text in this file.
0359 </para>
0360 </sect3>
0361 
0362 <sect3 id="kwallet-adding-entries">
0363 <title>Adding Entries Manually</title>
0364 <para>Open the context menu with the &RMB; click on <guilabel>Maps</guilabel> or
0365 <guilabel>Passwords</guilabel> in the <guilabel>Folder</guilabel> tree view.
0366 Select <guimenuitem>New</guimenuitem> or <guimenuitem>New Folder</guimenuitem> and choose a name for the new entry.</para>
0367 <para>In the folder contents pane select <guilabel>New Folder</guilabel> from
0368 the context menu of <quote>Form Data</quote> or <quote>Passwords</quote>.
0369 For passwords click the <guilabel>Show Contents</guilabel> button, enter the new password.
0370 For Maps you have to add a <guilabel>Key</guilabel> and a <guilabel>Value</guilabel>.
0371 Click the <guilabel>Save</guilabel> button to store the new entries in the encrypted
0372 wallet file.
0373 </para>
0374 </sect3>
0375 </sect2>
0376 
0377 <sect2>
0378 <title>Applications tab</title>
0379 <para>
0380 <screenshot>
0381 <screeninfo>Applications tab</screeninfo>
0382 <mediaobject>
0383 <imageobject>
0384 <imagedata fileref="kwallet-applications.png"/>
0385 </imageobject>
0386 <textobject>
0387 <phrase>Applications tab</phrase>
0388 </textobject>
0389 <caption><para>Applications tab</para></caption>
0390 </mediaobject>
0391 </screenshot>
0392 </para>
0393 <para>The first list shows all applications currently connected to the selected wallet.
0394 Use the button at the right side of each entry to disconnect the application.</para>
0395 
0396 <para>In the second list all applications are displayed which are authorized to access the wallet.
0397 Use the button right of each entry in the list to revoke the access.
0398 </para>
0399 <!-- FIXME difference to remove the policy in kwallermanager settings dialog?-->
0400 </sect2>
0401 </sect1>
0402 
0403 </chapter>
0404 
0405 <chapter id="kwallet-kcontrol-module">
0406 <title>Configuring &kwallet5;</title>
0407 
0408 <sect1 id="wallet-preferences">
0409 <title>Wallet Preferences</title>
0410 
0411 <para>&kwallet5; contains a small configuration panel with several options
0412 that allow you to tune &kwallet5; to your personal preferences.  The
0413 default settings for &kwallet5; are sufficient for most users.</para>
0414 
0415 <para>Check the box to enable or disable the &kde; wallet subsystem
0416 entirely.  If this box is unchecked, then &kwallet5; is entirely disabled and
0417 none of the other options here have any effect, nor will &kwallet5; record
0418 any information, or offer to fill in forms for you.</para>
0419 
0420 <variablelist>
0421 <title><guilabel>Close Wallet</guilabel></title>
0422 <varlistentry>
0423 <term><guilabel>Close when unused for:</guilabel></term>
0424 <listitem>
0425 <para>Close the current wallet after a period of inactivity. If you check this
0426 option, set the period in the box, default is 10 minutes. When a wallet is
0427 closed, the password is needed to access it again.</para>
0428 </listitem>
0429 </varlistentry>
0430 
0431 <varlistentry>
0432 <term><guilabel>Close when screensaver starts</guilabel></term>
0433 <listitem>
0434 <para>Close the wallet as soon as the screen saver starts. When a wallet is
0435 closed, the password is needed to access it again.</para>
0436 </listitem>
0437 </varlistentry>
0438 
0439 <varlistentry>
0440 <term><guilabel>Close when last application stops using it</guilabel></term>
0441 <listitem>
0442 <para>Close the wallet as soon as applications that use it have stopped. Note
0443 that your wallets will only be closed when all the applications that use it have
0444 stopped. When a wallet is closed, the password is needed to access it
0445 again.</para>
0446 </listitem>
0447 </varlistentry>
0448 </variablelist>
0449 
0450 <variablelist>
0451 <title><guilabel>Automatic Wallet Selection</guilabel></title>
0452 <varlistentry>
0453 <term><guilabel>Select wallet to use as default:</guilabel></term>
0454 <listitem>
0455 <para>Select which wallet you want to use as default wallet.
0456 Please keep in mind that only the wallet named <guilabel>kdewallet</guilabel>
0457 will be opened automatically at login, if this wallet and your login
0458 password are identical.
0459 </para>
0460 </listitem>
0461 </varlistentry>
0462 
0463 <varlistentry>
0464 <term><guilabel>Different wallet for local passwords:</guilabel></term>
0465 <listitem>
0466 <para>If checked, choose a different wallet for local passwords.</para>
0467 </listitem>
0468 </varlistentry>
0469 </variablelist>
0470 
0471 <variablelist>
0472 <title><guilabel>Wallet Manager</guilabel></title>
0473 <varlistentry>
0474 <term><guilabel>Show manager in system tray</guilabel></term>
0475 <listitem>
0476 <para>Enable the wallet manager to have its icon in the system tray.</para>
0477 </listitem>
0478 </varlistentry>
0479 
0480 <varlistentry>
0481 <term><guilabel>Hide System tray icon when last wallet
0482 closes</guilabel></term>
0483 <listitem>
0484 <para>When there is no wallet in use anymore, remove the wallet icon from the
0485 system tray.</para>
0486 </listitem>
0487 </varlistentry>
0488 </variablelist>
0489 
0490 <para>Finally, there is a button labeled <guibutton>Launch Wallet
0491 Manager</guibutton>, which does precisely that.</para>
0492 <para>This button is only visible if &kwalletmanager5; is not running</para>
0493 </sect1>
0494 
0495 <sect1 id="wallet-access-control">
0496 <title>Access Control</title>
0497 
0498 <para>There is only one option on this page:</para>
0499 
0500 <variablelist>
0501 <varlistentry>
0502 <term><guilabel>Prompt when an application accesses a wallet</guilabel></term>
0503 <listitem>
0504 <para>Signal you when an application gains access to a wallet.</para>
0505 </listitem>
0506 </varlistentry>
0507 </variablelist>
0508 
0509 <para>Next there is a tree style view of the access controls for your wallets.</para>
0510 
0511 <screenshot>
0512 <screeninfo>Access Control</screeninfo>
0513 <mediaobject>
0514 <imageobject>
0515 <imagedata fileref="kwallet-access-control.png"/>
0516 </imageobject>
0517 <textobject>
0518 <phrase>Access Control</phrase>
0519 </textobject>
0520 </mediaobject>
0521 </screenshot>
0522 
0523 <para>Click with the &LMB; on the <guiicon>&gt;</guiicon> symbol beside a wallet name to
0524 expand the tree. You will see the name of each application that has asked
0525 for access to the wallet, and the policy you set for it.  You cannot edit
0526 policies here, or add them, but it is possible to delete an entry by &RMB;
0527 clicking on it and choosing <guimenuitem>Delete</guimenuitem> from the
0528 context menu that appears, or by simply selecting it and pressing the
0529 <keysym>Del</keysym> key.</para>
0530 
0531 <para>An application that has been allowed access to a wallet is granted access to
0532 all passwords stored inside.</para>
0533 
0534 <para>If you erroneously configured an application not to use the &kwallet5;
0535 delete the policy for this application here.</para>
0536 <!-- FIXME difference to Revoke Authorization in kwallermanager?-->
0537 <para>
0538 On the next start of this application you can define a new policy for access to the wallet.
0539 </para>
0540 <screenshot>
0541 <screeninfo>Access request to open a wallet</screeninfo>
0542 <mediaobject>
0543 <imageobject>
0544 <imagedata fileref="application-request-to-open-wallet.png"/>
0545 </imageobject>
0546 <textobject>
0547 <phrase>Access request to open a wallet</phrase>
0548 </textobject>
0549 <caption><para>An application requesting access to a wallet</para></caption>
0550 </mediaobject>
0551 </screenshot>
0552 
0553 </sect1>
0554 
0555 </chapter>
0556 
0557 <chapter id="advanced-features">
0558 <title>Advanced Features</title>
0559 
0560 <para>Wallets can be dragged from the &kwalletmanager5; window.  This allows
0561 you to drag the wallet to a file browser window, where you can choose to
0562 copy, move, or link the wallet, as desired.</para>
0563 
0564 <para>You might use this to save a wallet to portable media, such as a
0565 USB keychain, so that you can take your passwords with you to work or
0566 on a vacation, and still have easy access to important sites.</para>
0567 
0568 </chapter>
0569 
0570 <chapter id="credits-and-license">
0571 <title>Credits and License</title>
0572 
0573 <para>&kwallet5; &copy; 2003 &George.Staikos;</para>
0574 <para>Documentation &copy; &Lauri.Watts; and &George.Staikos;</para>
0575 
0576 <!-- TRANS:CREDIT_FOR_TRANSLATORS -->
0577 
0578 &underFDL;
0579 &underGPL;
0580 
0581 </chapter>
0582 
0583 &documentation.index;
0584 
0585 </book>
0586 
0587 <!--
0588 Local Variables:
0589 mode: sgml
0590 sgml-minimize-attributes:nil
0591 sgml-general-insert-case:lower
0592 sgml-indent-step:0
0593 sgml-indent-data:nil
0594 End:
0595 
0596 // vim:ts=2:sw=2:tw=78:noet
0597 -->