diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 47d455dd55be855e4cc691c32f687f723d9247ee (patch) | |
tree | 52e236aaa2576bdb3840ebede26619692fed6d7d /doc | |
download | tdegraphics-47d455dd55be855e4cc691c32f687f723d9247ee.tar.gz tdegraphics-47d455dd55be855e4cc691c32f687f723d9247ee.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdegraphics@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'doc')
151 files changed, 16062 insertions, 0 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 00000000..6812bd2d --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,5 @@ + +KDE_LANG = en +KDE_DOCS = AUTO +SUBDIRS = $(AUTODIRS) + diff --git a/doc/kamera/Makefile.am b/doc/kamera/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kamera/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kamera/index.docbook b/doc/kamera/index.docbook new file mode 100644 index 00000000..2579fe41 --- /dev/null +++ b/doc/kamera/index.docbook @@ -0,0 +1,78 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kamera;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title>The &kamera; Handbook</title> + +<authorgroup> +<author> +<firstname></firstname> +<othername></othername> +<surname></surname> +<affiliation> +<address><email></email></address> +</affiliation> +</author> +<!-- TRANS:ROLES_OF_TRANSLATORS --> +</authorgroup> + +<legalnotice>&FDLNotice;</legalnotice> + +<!-- Date and version information of the documentation +Don't forget to include this last date and this last revision number, we +need them for translation coordination ! +Please respect the format of the date (DD/MM/YYYY) and of the version +(Major.minor.lesser), it could be used by automation scripts --> + +<date>2000-09-02</date> +<releaseinfo>0.00.00</releaseinfo> + +<!-- Abstract about this handbook --> + +<abstract> +<para> +&kamera; allows you to view and download images on a digital camera. +</para> +</abstract> + + +<keywordset> +<keyword>KDE</keyword> +<keyword>Kapp</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> <title>Introduction</title> <para>Sorry, but +the documentation for &kappname; was not finished when &kde; was installed on +this computer.</para> <para>If you need help, please check <ulink +url="http://www.kde.org">The &kde; Website</ulink> for updates, or by +submitting your question to <ulink url="mailto:kde@kde.org">The +&kde; User Mailing list</ulink>.</para> <para><emphasis>The &kde; +Team</emphasis></para> + +&underFDL; + +</chapter> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +// vim:ts=2:sw=2:tw=78:noet +--> diff --git a/doc/kcoloredit/Makefile.am b/doc/kcoloredit/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kcoloredit/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kcoloredit/index.docbook b/doc/kcoloredit/index.docbook new file mode 100644 index 00000000..8599cdf4 --- /dev/null +++ b/doc/kcoloredit/index.docbook @@ -0,0 +1,468 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kcoloredit "<application>KColorEdit</application>"> + <!ENTITY kappname "&kcoloredit;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE"> <!-- Change language only here --> +] +> + +<book lang="&language;"> +<bookinfo> +<title> The &kcoloredit; Handbook</title> +<authorgroup> +<author> +<firstname>Artur</firstname> +<surname>Rataj</surname> +<affiliation> +<address>&Artur.Rataj.mail;</address> +</affiliation> +</author> +<!-- TRANS:ROLES_OF_TRANSLATORS --> + +</authorgroup> + +<copyright> +<year>2000</year> +<holder>&Artur.Rataj;</holder> +</copyright> + +<legalnotice>&FDLNotice;</legalnotice> + +<date>2005-12-10</date> +<releaseinfo>3.5.0</releaseinfo> + +<abstract> +<para>&kcoloredit; is a palette files editor. It can be used for editing +color palettes and for color choosing and naming.</para> +</abstract> + +<keywordset> +<keyword>KDE</keyword> +<keyword>graphics</keyword> +<keyword>palette</keyword> +</keywordset> +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> + +<para>&kcoloredit; is a palette files editor. It can be used for +editing color palettes and for color choosing and naming.</para> + +</chapter> + +<chapter id="file-operations"> +<title>File operations</title> + +<sect1 id="file"> +<title>About palette files</title> + +<para> +The palette files installed by &kde; can be either system-wide or the +user ones. The latter are in you private &kde; configuration +folders, and they are named <guilabel>Custom Colors</guilabel> and +<guilabel>Recent Colors</guilabel>. +</para> + +<para> +In &kcoloredit;, you may open all of these palettes, as well as +palettes in arbitrary files. +</para> + +</sect1> + +<sect1 id="file-open"> +<title>Opening a file</title> +<para> +In the <guilabel>Open File</guilabel> dialog, you may choose from a +list of installed palettes, or browse folders for files. +</para> +</sect1> + +</chapter> + +<chapter id="Edition"> +<title>Editing</title> + +<sect1 id="cursor"> +<title>Cursor</title> + +<para>The cursor is visible as a line in the palette view. It can be +moved by clicking on an area beside a color.</para> + +<para>The cursor has the following functions:</para> + +<itemizedlist> +<listitem> +<para> +It points to the color after it. The color, if any, is described below +the palette view. You may edit its name there. +</para> +</listitem> +<listitem> +<para> +It can be used to make a selection. A selection can be made by +clicking on an area beside a color, so to move the cursor there, and +by moving the mouse then with the left mouse button pressed. +</para> +</listitem> +<listitem> +<para>If the <guilabel>At cursor</guilabel> check-box near the +<guilabel>Add Color</guilabel> button is checked, a color from the +color chooser is put at the cursor. The color is either inserted +or it overwrites another one, depending on whether the +<guilabel>Overwrite</guilabel> mode is chosen. The mode can be chosen +by checking the <guilabel>Overwrite</guilabel> check-box, that is next +to the <guilabel>At cursor</guilabel> one.</para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id = "selection"> +<title>Selection</title> +<para> +A selection, that can be made as it was written in the previous +section, can be used with the copy, cut and paste operations. +</para> +</sect1> + +<sect1 id = "clipboard-format"> +<title>Clipboard format</title> +<para> +&kcoloredit; uses the following format for clipboard data: for each +color three numbers for red, green and blue components, respectively, +and an optional color name, followed by a new line character if there +is another color. Therefore, if for example three numbers are in the +clipboard, they can be pasted by &kcoloredit; as a color. +</para> +</sect1> + +</chapter> + +<chapter id="color-selection"> +<title>Selecting a color from an RGB space</title> + +<para> +A color can be selected from an RGB space in &kcoloredit; in the +following ways: +<itemizedlist> +<listitem> +<para> +By editing the HSV or RGB components. +</para> +</listitem> +<listitem> +<para> +By selecting a color from color gradient panels. In the left one, two +from HSV components can be selected, and in the right one, the third +one. The third component can be chosen by clicking on one of the +buttons labeled <guilabel>H:</guilabel>, <guilabel>S:</guilabel> and +<guilabel>V:</guilabel>. The one component panel display colors with +the other two components equal to these selected in the two components +panel. The two components panel may display colors with the third +component fixed, or, if the <guilabel>Variable</guilabel> check-box is +set, with a value equal to the one selected in the one component +panel. In the <guilabel>Replace</guilabel> mode, the color selected in +panels replaces the output one instantly, and in the +<guilabel>Change:</guilabel> mode it modifies the output color after +each click, or a mouse move while a mouse button is +pressed. Therefore, in the latter mode the color selected in the +gradient panels may be different from the output color. To synchronize +the colors, the <guibutton>Synchronize</guibutton> button can be used. +</para> +</listitem> +</itemizedlist> +</para> +</chapter> + +<!-- Someone energetic might want to write a small chapter here --> +<!-- describing RGB vs HSV etc --> + +<chapter id="drag-and-drop"> +<title>Drag and drop</title> +<para> +The palette colors and the color selection output color can be dragged +with a mouse. +</para> +</chapter> + +<chapter id="menu-reference"> +<title>Menu Reference</title> + +<sect1 id="file-menu"> +<title>The <guimenu>File</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>N</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>New</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Start a new palette in the current window.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>New Window</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Open a new window</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>O</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Open</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Open a saved palette.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Open Recent</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Reopen a palette that you have recently been +editing.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>S</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Save</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Save the currently open palette.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Save As...</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Save the currently open palette with a new +name.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>W</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Close</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Close</action> the current &kcoloredit; window</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>Q</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Quit</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Quit</action> &kcoloredit;.</para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="edit-menu"> +<title>The <guimenu>Edit</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>X</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Cut</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Cut the currently selected color to the +clipboard.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>C</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Copy</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Copy the currently selected color to the +clipboard.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>V</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Paste</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Paste a color from the clipboard.</action></para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="color-menu"> +<title>The <guimenu>Color</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice> +<guimenu>Color</guimenu> +<guimenuitem>From Palette</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Find the color currently selected in the palette, in the +color selector on the left.</action></para><!-- eww... needs rewrite --> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Color</guimenu> +<guimenuitem>From Screen</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Pick a color from anywhere on the screen, and find it +in the color selector on the left.</action></para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="settings-menu"> +<title>The <guimenu>Settings</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Hide/Show Toolbar</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Toggle on and off the toolbar icons.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Hide/Show Statusbar</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Toggle on and off the status bar.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Hide/Show Color Names</guimenuitem> +</menuchoice></term> +<listitem> +<para>If the currently open palette has color name, <action>display +them alongside the colors</action>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure Shortcuts...</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Configure</action> the keyboard keys you use to access the +different actions.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure Toolbars...</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Configure</action> the items you want to put in the toolbar +</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="help-menu"> +<title>The <guimenu>Help</guimenu> Menu</title> + +&help.menu.documentation; + +</sect1> + +</chapter> + +<chapter id="credits-and-licenses"> +<title>Credits and Licenses</title> + +<para>&kcoloredit; copyright 2000 &Artur.Rataj;</para> + +<para>Documentation copyright 2000 &Artur.Rataj;</para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL; +&underGPL; +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +&install.intro.documentation; + +&install.compile.documentation; + +</appendix> + +</book> +<!-- +Local Variables: +mode: sgml +sgml-omittag: nil +sgml-shorttag: t +End: +--> + diff --git a/doc/kdvi/KDVI-features.dvi b/doc/kdvi/KDVI-features.dvi Binary files differnew file mode 100644 index 00000000..2bf4d014 --- /dev/null +++ b/doc/kdvi/KDVI-features.dvi diff --git a/doc/kdvi/KDVI-features.tex b/doc/kdvi/KDVI-features.tex new file mode 100644 index 00000000..66c3f9f5 --- /dev/null +++ b/doc/kdvi/KDVI-features.tex @@ -0,0 +1,480 @@ +\documentclass{article} + +\usepackage{amstext} +\usepackage{colordvi} +\usepackage{graphicx} +\usepackage{times} +\usepackage[arrow,matrix,curve,ps]{xy} +\xyoption{dvips} +\usepackage[active]{srcltx} +\usepackage[hypertex]{hyperref} +\sloppy + +\newcommand{\KDVI}{{\sf KDVI 1.1}} + +\begin{document} + +\title{Support for \TeX\ extensions in \KDVI} + +\author{Stefan Kebekus} + +\maketitle +\begin{abstract} + This document describes the extensions to the standard format of DVI + files which \KDVI\ implements in order to support PostScript + inclusion and hyperlinks. + + \KDVI\ is a program that displays DVI-files generated by the \TeX\ + typesetting system. If you don't know what \TeX\ is then you are + most likely not interested in this. If you would like to know how to + use special features of \KDVI, then you can find examples here. +\end{abstract} + +\tableofcontents + +\section{What's all this} + +The DVI-previewing program \KDVI\ is able to display standard +DVI-files as specified in \cite{Level0Std}. In order to support +graphics inclusion, hyperlinks and non-standard fonts, \KDVI\ +implements a number of features which extend \cite{Level0Std}. In +particular, \KDVI\ supports a number of \TeX 's $\backslash${\tt + special} commands. The aim of this document is to describe these +extensions and give examples of their use. + +Unfortunately, in spite of several attempts to find a sound standard +for the use of $\backslash${\tt special} commands, there is now a +wealth of competing and mutually incompatible definitions. + +\KDVI\ does not attempt to support all possible features. Instead, we +tried to implement those which are most useful and used most commonly. +In this, we have tried to be consistent with the {\sf dvips} program. +\KDVI\ does not support a number of outdated and unsane standards, nor +does it support features which impair the system security. + + +\section{Virtual fonts} + +\KDVI\ supports ``virtual fonts''. This enables \TeX\ to use +PostScript fonts. For more information, and a complete specification, +consult \cite{dvips}. + +\paragraph*{Example} + +This text uses the ``Times'' family of fonts instead of the ``Computer +Modern'' fonts which are usually used by \TeX. This was realized in +\LaTeX 2$\epsilon$ by including the line +\begin{verbatim} +\usepackage{times} +\end{verbatim} +in the header of this document. + + +\section{PostScript support} + +\KDVI\ implements basic facilities to include PostScript graphics in a +DVI file, which will enable the reader to conviently read most +scientific papers which use such features. + +\subsection{Literal PostScript} + +\KDVI\ supports the inclusion of PostScript into DVI-files by means of +the quote-special. The syntax follows the specification of +\cite{dvips}: +\begin{verbatim} +\special{" PostScript-commands} +\end{verbatim} +The PostScript-commands are not directly included, in fact they are +sandwiched between a {\tt save} and {\tt restore} pair. That way +\KDVI\ ensures that the command cannot affect PostScript-commands +which appear somewhere else in your file. + +\paragraph*{Example} + +Figure~\ref{quote-special} shows an example taken from \cite{dvips}. +The generating \TeX -code is +\begin{verbatim} +\vbox to 100bp{\vss +\special{" newpath 0 0 moveto 100 100 lineto + 300 0 lineto closepath gsave 0.8 setgray fill + grestore stroke}} +\end{verbatim} + +\begin{figure} +\vbox to 100bp{\vss +\special{" newpath 0 0 moveto 100 100 lineto 300 0 lineto closepath gsave 0.8 setgray fill grestore stroke}} +\caption{Graphic generated by literal PostScript inclusion\label{quote-special}} +\end{figure} + + +\subsection{Direct PostScript} + +\KDVI\ supports the inclusion of PostScript into DVI-files by means of +the direct-special. The syntax follows the specification of +\cite{dvips}: +\begin{verbatim} +\special{ps: Postscript-commands} +\end{verbatim} +The PostScript-commands are directly included, and there is no +protective {\tt save} and {\tt restore} pair. The use of this command +is not recommended, as it may have funny side effects on other +PostScript commands which appear later in your file. + +\KDVI\ also supports the following syntactical variants which are +explained in \cite{dvips}: +\begin{verbatim} +\special{ps: Postscript-commands} +\special{ps::[begin] Postscript-commands} +\special{ps:: Postscript-commands} +\special{ps::[end] Postscript-commands} +\end{verbatim} +The variant +\begin{verbatim} +\special{ps: plotfile filename} +\end{verbatim} +is not currently supported. + +\paragraph*{Example} + +The command +\begin{verbatim} +\includegraphics[height=3cm, angle=20]{aboutkde.ps} +\end{verbatim} +which is used in section~\ref{chap:eps} uses the direct-special +internally in order to set the rotation. + +\subsection{Literal headers} + +Literal headers work as described in \cite{dvips}. +\begin{verbatim} +\special{! PostScript-Header-commands} +\end{verbatim} + +\paragraph*{Example} +The following diagram, which was generated using the \Xy -pic macro +packages uses literal postscript inclusion which relies on literal +headers. +$$ +\xymatrix{ {\tilde X} + \ar@{-->}[rrd]_{\exists \alpha} \ar[rrrr]^{\eta}_{\txt{\tiny + normalization}} \ar@/_/ [rrdd]_ {\tilde \pi} & & & & {X} + \ar@/^/[lldd]^{\pi} \\ & & {X'} + \ar@{-->}[rru]_{\exists \beta} \ar@{-->}[d]_{\exists \pi'} & & \\ & & + {Y}& &} +$$ +Note that the actual headers are defined on the first page of the +document. This was a major source of trouble in earlier versions of +KDVI. + + + +\subsection{PostScript headers} + +PostScript headers work as described in \cite{dvips}. This command is +very similar to the literal header command, but expects the name of a +file which should be included. +\begin{verbatim} +\special{header=filename} +\end{verbatim} + + + + +\subsection{EPS inclusion}\label{chap:eps} + +A popular way to include PostScript-files into \TeX\ documents uses +the PSFile $\backslash${\tt special} command. Again this is explained +in detail in \cite{dvips}. Currently \KDVI\ supports the syntax +\begin{verbatim} +\special{psfile=File keyword=value keyword=value ...} +\end{verbatim} +Where keyword is one of the following +\begin{description} +\item[llx] lower left corner of the bounding box, $x$-coordinate +\item[lly] lower left corner of the bounding box, $y$-coordinate +\item[urx] upper right corner of the bounding box, $x$-coordinate +\item[ury] upper right corner of the bounding box, $y$-coordinate +\item[rwi] width of the bounding box. If $llx-urx \not = rwi$, then +the boundig box is scaled accordingly. +\item[rhi] height of the bounding box If $lly-ury \not = rhi$, then +the boundig box is scaled accordingly. +\item[angle] rotates the picture counterclockwise +\end{description} +Unknown keywords are silently ignored. The keywords {\tt llx}, {\tt + lly}, {\tt urx}, {\tt ury} and {\tt rwi} are usually generated by +the {\tt epsf} macros. The keywords {\tt hoffset}, {\tt voffset}, +{\tt hsize}, {\tt vsize}, {\tt hscale}, {\tt vscale}, {\tt angle} and +{\tt clip} are not currently implemented. The ``uncompression'' +feature of {\sf dvips} and {\sf xdvi} which allows to execute +arbitrary commands in via the syntactical variant +\begin{verbatim} +\special{psfile="'shell-command" keyword=value ...} +\end{verbatim} +is deliberately not implemented for security reasons. + +\paragraph*{Example} +Figure~\ref{epsf-special} shows an embedded postscript-file. +\begin{figure} + \begin{center} + \includegraphics[height=3cm]{aboutkde.ps} + \includegraphics[height=4cm]{aboutkde.ps} + \includegraphics[height=3cm, angle=20]{aboutkde.ps} + \end{center} +\caption{Embedded PostScript graphic\label{epsf-special}} +\end{figure} +This was easily realized by including the line +\begin{verbatim} +\usepackage{graphicx} +\end{verbatim} +into the header of this document, and the lines +\begin{verbatim} +\includegraphics[height=3cm]{aboutkde.ps} +\includegraphics[height=4cm]{aboutkde.ps} +\includegraphics[height=3cm, angle=20]{aboutkde.ps} +\end{verbatim} +at the place where the graphic should appear. It is strongly +recommended to use the {\tt graphicx} macro package for this purpose. +\begin{figure} + \begin{center} + \includegraphics[height=2cm, bb=0 0 150 50]{nonexistent.ps} + \end{center} +\caption{Reference to a non-existent PS-file\label{nonex-special}} +\end{figure} +Figure~\ref{nonex-special} shows how \KDVI\ warns you about +non-existent files. + + +\section{Hypertext support} + +\KDVI\ supports commands for hyperlink support which commands +establish links between sections of documents in a manner exactly +analogous to the HTML of the WWW. For a detailed specification we +refer to \cite{HFAQ99} or \cite{Rah98}. Note, however, that \KDVI\ +does currently not allow nested hyperlinks. + +\subsection{Hyper-Labels} + +The commands +\begin{verbatim} +\special{html:<a name="namestring">} +\special{html:</a>} +\end{verbatim} +labels the current point of the text for later reference. + +\subsection{Hyper-References} + +The commands +\begin{verbatim} +\special{html:<a href="hrefstring">} +Text +\special{html:</a>} +\end{verbatim} +makes {\tt Text} a link to {\tt hrefstring}, where {\tt hrefstring} is +an absolute or relative URL in the standard format used on the +internel. If {\tt hrefstring} is of the form {\tt \#label} then it +points to the section of the current document which is labeled using +the labeling command described above: +\begin{verbatim} +\special{html:<a name="namestring">} +\end{verbatim} + + + +\paragraph*{Example} +This document features a clickable table of contents, and also the +references can be clicked on. This has been achieved by using the {\tt + hyperref} macro package in \LaTeX\ by including the line +\begin{verbatim} +\usepackage[hypertex]{hyperref} +\end{verbatim} +into the document preamble. Everything else is automatic. + +Here is an external link which points to the \href{http://www.kde.org}{main + website of the KDE project}. For this, the command {\tt href} of the +{\tt hyperref} macro package was used: +\begin{verbatim} +\href{http://www.kde.org}{main + website of the KDE project} +\end{verbatim} + + +\paragraph{Warning.} On some installations, the {\tt + hyperref} macro package is configured to generate PostScript +hyperlinks for {\tt dvips} by default. On these systems, using the +line +\begin{verbatim} +\usepackage{hyperref} +\end{verbatim} +will generate DVI file whose hyperlinks are not visible in KDVI. +Worse, KDVI will call the {\tt ghostview} PostScript interpreter for +every page, which makes the display very slow. + + + +\section{Colored \Red{text} \Green{and} \Blue{background}} + +The DVI specials for colored text are supported as they are described +in \cite{dvips}. + +\paragraph*{Example} In this document, the following code was used to +generate the text below. +\begin{verbatim} +\usepackage{colordvi} + +... + +\textGreen This text is green but here we are +\Red{switching to red, \Blue{nesting blue}, +recovering the red} and back to original green. +\textCyan The text from here on will be cyan +unless \Yellow{locally changed to yellow}. Now +we are back to cyan. \textBlack +\end{verbatim} + +This gave the following output: +\begin{verse} + \textGreen This text is green but here +we are \Red{switching to red, \Blue{nesting blue}, recovering the red} +and back to original green. \textCyan The text from here on will be +cyan unless \Yellow{locally changed to yellow}. Now we are back to +cyan. \textBlack +\end{verse} + +To set the background color of the page, the command +\background{Lavender} +\begin{verbatim} +\background{Lavender} +\end{verbatim} +was used. To switch back to normal, the command +\begin{verbatim} +\background{White} +\end{verbatim} +was placed somewhere on the following page. As you see, the background +command does not fit well into \LaTeX's philosophy and should be +avoided. + +\section{Rotated Text} + +Rotated text can sometimes be useful, e.g. to fit large table onto a +single page. This is used, e.g.~in the style files of journals of the +American Astronomical Society. Here is one example. + +\begin{table}[h] + \centering +\begin{tabular}{l|ll} + & \rotatebox{90}{uses \TeX} & \rotatebox{90}{uses Linux} \\ \hline + Stefan & $\times$ & $\times$ \\ + Anke & & $\times$ \\ + Thomas & $\times$ &\\ +\end{tabular} +\end{table} + +This was easily realized by including the line +\begin{verbatim} +\usepackage{graphicx} +\end{verbatim} +into the header of this document. The table itself was then typeset by +{\footnotesize +\begin{verbatim} +\begin{tabular}{l|ll} + & \rotatebox{90}{uses \TeX} & \rotatebox{90}{uses Linux} \\ \hline + Stefan & $\times$ & $\times$ \\ + Anke & & $\times$ \\ + Thomas & $\times$ &\\ +\end{tabular} +\end{verbatim} +} + +\section{Source text specials} + +\KDVI\ is able to make use of source file information which is included +in the DVI file. To include source file information, a {\tt special} +command like to following should be included at the beginning of every +paragraph or every line: +\begin{verbatim} +\special{src:123text.tex} +\end{verbatim} +This tells \KDVI\ that the next paragraph should be associated with +line 123 in the source file text.tex. + +It is of course not practical to add these commands manually to the +beginning of every line ---see the \href{help:/kdvi}{Handbook of +\KDVI} to learn how to add the special commands automatically to your +DVI files. + +The main use of source file specials is the interaction between \KDVI\ +and your editor. Starting from version~1.0, both \emph{forward search} +and \emph{inverse search} are supported. + +\subsection{Forward search} + +Forward search is a feature that helps you find the place in the DVI +file that corresponds to a certain line in the source text. If source +file information is included, you can find the place in the DVI file +{\tt test.dvi} which corresponds to line 1234 in the source file {\tt +text.tex} by starting \KDVI\ like this: +\begin{verbatim} +kdvi file:test.dvi#1234text.tex +\end{verbatim} +In pracitse, this command line will be generated by a script that +communicates with your editor. Currently, scripts for Emacs and XEmacs +exist. As usual, the \href{help:/kdvi/forward-search.html}{Handbook of +\KDVI} explains how to set up your editor with thest scripts. + + +\subsection{Inverse search} + +\background{White} +Inverse search means that you can click into the document in \KDVI, +and your editor will open, load the source file and jump to the proper +place. \KDVI\ currently supports the editors Emacs, Kate, NEdit, VI +and XEmacs. Users who prefer a different editor can specify shell +commands which are to be used. Again we refer to the +\href{help:/kdvi/inverse-search.html}{Handbook of \KDVI} for a detailed explanation. + +\paragraph*{Example} +If you are viewing this document in \KDVI, you can click anywhere with +the middle mouse button (if your mouse has only two buttons, click +left and right simultaneously). An editor will pop up, load the +\LaTeX\ sourcefile and jump to the appropriate line in the +text. Source specials has been added using the {\tt srcltx} macro +package in \LaTeX\ by including the line +\begin{verbatim} +\usepackage[active]{srcltx} +\end{verbatim} +into the document preamble. Everything else is automatic. + + +\begin{thebibliography}{CM97} + +\bibitem[Bha99]{HFAQ99} +T.~Bhattacharya et al. +\newblock {\em Hyper\TeX\ FAQ} +\newblock available on the internet site of the preprint server of the + Los Alamos National Labatories at +\href{http://arXiv.org/hypertex}{\small \tt http://arXiv.org/hypertex} + +\bibitem[Rah98]{Rah98} +S.~Rahts +\newblock {\em Hypertext marks in \LaTeX: the {\sf hyperref} package} +\newblock included in the tetex distribution. A copy can be found on KDVI's +home page at \hfill \linebreak +\href{http://devel-home.kde.org/~kdvi/DVI/hyperref-manual.pdf}{\small \tt http://devel-home.kde.org/$\sim$kdvi/DVI/hyperref-manual.pdf} + +\bibitem[Rok00]{dvips} +T.~Rokicki +\newblock {\em DVIPS: A \TeX\ Driver} +\newblock included in the tetex distribution. A copy can be found on KDVI's +home page at \hfill \linebreak +\href{http://devel-home.kde.org/~kdvi/DVI/dvips.dvi}{\small \tt http://devel-home.kde.org/$\sim$kdvi/DVI/dvips.dvi} + +\bibitem[TUG0]{Level0Std} +The TUG DVI Driver Standards Committee +\newblock {\em The DVI Driver Standard, Level 0} +\newblock included in the tetex distribution. A copy can be found on KDVI's +home page at \hfill \linebreak +\href{http://devel-home.kde.org/~kdvi/DVI/dvistd0.dvi}{\small \tt http://devel-home.kde.org/$\sim$kdvi/DVI/dvistd0.dvi} + + +\end{thebibliography} +\end{document} diff --git a/doc/kdvi/Makefile.am b/doc/kdvi/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kdvi/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kdvi/aboutkde.ps b/doc/kdvi/aboutkde.ps new file mode 100644 index 00000000..63200859 --- /dev/null +++ b/doc/kdvi/aboutkde.ps @@ -0,0 +1,3351 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/devel/dvifiles/aboutkde.ps +%%Creator: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) - by John Bradley +%%BoundingBox: 0 0 150 250 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define string to hold a scanline's worth of data +/pix 450 string def + +% define space for color conversions +/grays 150 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +0 0 translate + +% size of image (on paper, in 1/72inch coords) +149.97600 249.98400 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +150 250 8 % dimensions of data +[150 0 0 -250 0 250] % mapping matrix +{currentfile pix readhexstring pop} +false 3 colorimage + +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fcfffffffdfffefdfbfefffffffffff8fffff8fffffffcfbfefffbfeffffffffffffffff +fffefffefefffffffffefdfffdfdfde7e7e79797976767674444443a3a3a3333337f7f7f +fffefdfffdfffdfcfffffffbfefffffefefffefdfffffffafffffffffffffefefefefefe +fffffffefefefffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fcfefdfdfdfdfffffffffffffefcfdfefffffbfffffffdfffefcfffffff8fefff9ffffff +fbfcf6fdfef9fffeffa3a2a74b4b4b1b1b1b1a1a1a2424243535352929292d2d2dc2c2c2 +fffefafffefffffffffffffd9799942c2e2d606165a0a1a5fffffffdfdfdfffffffafafa +fffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffbfdfffefeffffdadada979a93fffdf6fffefbfefffffffffbfffefffffffffefefc +ffffffafb0a830322513121a1717172525252121211818181b1b1b676767f7f7f7ffffff +fefefefdfdfbfffff8fffffdc9cbca1517141b1c1e2a2b2f3e3e3ea3a3a3fefefeffffff +fcfcfcfffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffafefffffffefffcfffd4a5c467e876cfbf5e5fffff6fffdfefffdfffbf9fffffeff +82837e181914161618161614131313151515404040838383eaeaeafffffffcfcfcffffff +fefffffefffffffff6fffefffefdff979a911618131315102727271e1e1e5f5f5fffffff +fdfdfdfefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefbfdfcfffffdfffafff9759774567645838a60ddd9b6fffffbfbf9fefffdfffffffd +999a9556555d5c5a6571726aa9a9a9e1e1e1fffffffefefefffffffafafaffffffffffff +fbfffffefefffdfdfbfffdfffffffb979c7e888c7d55584f1616161515151717176b6b6b +fffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefdfffefffffbfffefffbb2d4b167995e7a9858999f63cad092ffffeffffefffaf8f9 +fffefffffefffffffbfdfef8fcfcfcfffffffffffffdfdfdfdfdfdffffffffffffffffff +fbfff5fefefffcfafbfffffa7b7d589da367eaedd8fefefed2d2d27878783f3f3f696969 +fcfcfcfefefefffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fdfdfbfafefffffefffffafaf4ffee7db27c84be729ab669bac565d3dc8bfeffd9fffffa +fdfcf8fffffdfcfcfefefff8fffffffefefefffffffffffffcfcfcfffffffffffffdfdfd +fefff4fefdfffdfde386875bb1b46dd2d98cfffff1fffefffffffffefefefffffffdfdfd +fefefefffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fcfffdf9fffffbfffffffafffffef796c79a90da8da2d47dc3cc7be8f687f0fe8cfcffc2 +fffff7fffefffffffffefffffdfdfdfffffffffffffdfdfdfffffffffffffdfdfdffffff +fefffbe9e8e68b8f54b2b763fdffa4dde195fffcf3fffefffffffffefefefffffffdfdfd +fffffffbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffcfffbfffffcfdf8fffdfffff7ffd7f5d396ea95aef9a6bfeb9cd0ef78ffff9ffffd9a +fcffb0f9fffdfbfefffffef4fafefffffffdfffef8fffefbfdfdfffcfffdfcfffdfefeff +eeebe4828744bec55efdff9bfeffacdee48afffcfffffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffbfffdfffefefffbfbfbfdfffdfff7fff0aae6a6b2ffafc1ffa9d5fda5f2ff94ffffab +ffffabffffb0feffddfafffff8fffdfbfffbfefefcfffdfffffefffffffafcfcf4fffcff +93935dc3c95ffcfc98fffdaffffeb3e9ee94fffdfefefffdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffcfffffdfcfcfffbfafefdfffffffffffbdbf7d1acfea9d2ffc2dfffb8eeffa3fffdad +fffbbdb7c86a5176296f975bdbe4d1fcfffafcfcfff9fdfcfbfff1f9fefffefffd929a5f +bcca5bfbff95fffbbcfffccdffffb2eaf096fffdfffcfffbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffdfffffefdf7fcf8fffffffdfffefbfafffcfff4b8f5afd5ffcbe9fde2fafdc6ffffad +99b0562b5620356e21366e173e641982ab6999ce748dd35974c13f6ab830589d1c508920 +6e8b3b849e3bb7c381fbfcd0fdffbdf6fea9fffff8fcfdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefefffffffdfefffdfffbfefefffff9fffffffffde1ffd2bcff9beefefbfcfffba3d16f +29680f386721375d24335f2068945597b774d1e09df3f9cbfbffdcd9fba7699e322c6812 +295e102d5717264412596e2bdbeb93f9ffb5fefbf4fffbffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fdfcfffefffdfefffdfff9fcfffefff9fffffcfefdfefff1c3fa9fe4ffdcbff0c1388330 +31821c346826254d07749a67c7e6bae6ffbbfaffcbfffedfffffedfffffdfbfff4a1b474 +3063202e5e143d651e728e53bbcc98f6fecbfefee6fffbf2ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffdfcfefffffdfffcfefffffffbfffffefcfcfffbfffdfff9fff8bff89953ac3e3a951e +3e902227701f6daa6ec5f8c0d9fdd1ebffdff3fedefeffeafffffdfefcfffffdfffdfdff +bed79d39511f667c56aec39ae0f2c0f7ffdcffffefffffeaffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefafffffffcfffdf7fffffffbfffffbfaf9fff6fff9fffbfff9bdf5aa389d1143a72d +3c942463b455b9fec7befec1e5ffd2f0ffdcfeffebfffff3fefdfbfffffffbfdf8fefffd +fffbff92917c777e5fbbc79fe4f6baf8ffdffbfcf7fffffaffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffdfffbfff84c923042af22 +439d228ddd98b3ffc3caffcbe6ffdffafde8fffff3fafff7fffffdfffdfffffefffffcff +fefffdfcfcf489917ab0c59adef5c1fbffdcfffff3fdfdfffffffdfffffdfffffdfffefc +fcfcfafffffdfcfcfafffffdffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefffffcfdff9ec691378426 +4a9b3eabfcc1b6ffc9cefed4e5fdddffffedfefff1f9fff6fcfcfafffefffcfdfffffeff +fcfefbfffffbd8e0cbb1c497e7fcc4f5ffdafefef2fefffffffefffffefffffdfeffffff +fffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffdfffafefafff8fff4527e4b +5aa564b4ffd3bcffced0fed9e8ffe0feffebfefff1f9fff8fffffdfffffffafffefeffff +fcfefdfffefffefff3acbf91dbf0b8fbffe1fffff8fbfdfcfffffffffffffefefefdfdfd +fffffffdfdfdfffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffff8fffefff3f9eb3a5f34 +a1f0b7afffd1bafac6d1ffd7e1ffe0faffeddaded0808a81ababa9fefefefcfffffeffff +fefffffffdfffbfef3bccda0ddefbbfdffe9fdfcf8fefffdfefefefffffffffffffefefe +fffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffbf8f9fffa3f59363b6e35 +a8fccaabfed0c3fdd4cdffd8e6ffeca2af9d1820130d1810565654a5a1a2f4f6f5fffeff +fdfffefffcfffffffad8e6c2aebd94717463696866b9bbb6fefffffdfffefbfbfbffffff +fdfdfdfffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffb6b856a1a46113e813c +adffd9b4ffe1c4fcdfcbffe1c6edd2111e0d0f160e161f1a444245bdb8bcb3b4b6fffdfe +fdfffefffefffffffbd3ddc5222c13191911201e1f7e807bbbbdbcfdfffefefffffafafa +fffffffffffffdfbfcfffeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffaec6ac204816255c18438a3e +b4ffe0b3fce1c4fee6cbffe55b7b66151b11171813141a182422277d7b80bbc1c1e2e6e7 +fefffffffefffefdf97f857b0e140a181715282327636564bcc0bfcdd1d0f9fbfafeffff +fffffffdfdfdfffefffffeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff2f5e282e611c2f681958984a +bafddebfffe5bffbdfc8fddf384f3f13120d1e1a191317181c1a1f3b3a4097a3a3b6c0bf +fefffffffefbfffffb454a46161a1b171518201b1f3435379ea2a3acb0b1fefffffcfdff +fefefffffffffffdfffffeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfffffff7fcf8fbfffbfffdfffffbfff9fff6608657245b17397d283871204c8b3c +b1ffdbc3fff4c5faf0aaffce3443461d1f1c1b201c12151c1f16272b282f77807fa4a7ac +fcfffffefefcfffffa5e59531b16131b17181b191a2626247b84899aa0aefcfffffffffb +fefcfffffefffffffaffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fdfdfdfffffdfefffdfcfcfcfffdfffcfcfaacc3a6205016387824387c25377a1b306b1b +a2f9c2c8fff9c5fdf2aeffd6486b67202b271618131a1e1d1d181e2121234d5756848e8d +fefffffefffffffffa6f706a13131118181819191b202221495154797e84e0e4e3fefffd +fffefffefefefefff9feffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefff7f9f6fffffffffcfffffcfff4fff02b582132702337841e3e892c39861c36701c +8de49fccfffacafffbb3fcdf65988f2b3d3d1b1d1c181d16111610202423262f2c888f87 +fefdfffefffffcfffb7b8079141915181c1d14181b1d1e22373c3f545857e6e8e3feffff +fffefffffffbfefff8fdfeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefcfffefffbfffffffff9fffefffa577d4e276b183784243c90203d922d3b89232b6a0f +69b670cbfff4cbfeffc0fff27cb9a73e5656201f24171916171d1915191a171612bcbdab +fffdfffffefffdfff96c736b161c1a171c1f14151a1d1c213031353b3c36fdfef6fdfdff +fefefffffff2fefff2fffeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefffcfefbfcfcfafffffda6ba9f255e172f801a3c922742982939942b3b8226246a0a +4f8b4fc6ffeaceffffc1fef7a8f1d331564e2828302218201412171a1a1c333327f8fedc +fffef9fffff7fdfff551564f171b1a1b1c201c1b201c1a1d1515175e6053fffff4fffffb +fffff4f9fce1fdfce8fffeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefefefffffffcfef9f0ffea29541e347d23398f2241972844972b328f243c7d29397f26 +2f5e27a5eabbcafff3c3fff8adffd95a967c091c1620171a1511121d241c9aa78df0ffd6 +faffe8feffecfcffef454b411f21201e1f211c1c1c12110d151b11b6bea6f6fee6fbffee +fbffe1f4fad6fffff1fffeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefffdfffdfffcfffa5e825624651536892146992d3a8d2145942b388f263b7d252e6b1d +376525387e3fbdfed6bffeebafffd8a6fccd669e793a503b495f4a8baa88d2edc4d8efc1 +eafdcff0ffd9d2dfc3333b2e1b1f1e171b1c10150f171d0f697c5ee9fed5ecffdaf1ffdb +eafcc8e1edc5fefff8fbfaffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefffdfffdffced6cb2151173686253c922543942b49982f4392293c8d26347c19346925 +2e601726692263ad70c1ffe6baffde9dffc695edb09dd7a79cd4a398d2989bc08cbbcda5 +bfdda1c6e1ae90a4811c2717282e2c383e3c3f493e6f7c68abc898bddba5cceab8d3f0ba +d4eeafc5d7affafffefcfeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefffffdfdfffffefffffffd +fdfdfbfffffffffdfffffcfffffdfcfffefffcfbfffffefffdfdfffdfdfbfffffdfffaff +fffdfef9fffdf7fffdeefbf1d7ded6d0d3ccd5dad4d4ddd8e5e7e4f4f9f5fefbfffff9ff +fffefff7fff8fbfffffffcfffffcfffffcfffefbfffcfefdfefffdfdfefffffefffffffb +fffafff8fff845713e2a6f1c36882241972a439a294299263c8f233b8c253e8a28337920 +35762428641a28611d6ca36286dba08de0a88ad7a380c2947bad887a9d7f83998297a490 +9cb0978d9f873d4a391017101c2021313534555b4d6f79607e98689dae8eb2c196b2c5a5 +9bb88289a269fdfffefffcfdf8fdfffbfffffcfffffefffffefdfffdfcfffffeffffffff +fffdfffefdfffbfcfffffffffffef9fffffaf9fdfcf7ffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfffefffdfdfffeffff +fcfffffbfffcfbfdfafffffdf7fffffffffafffdfafffffffcfffdfbfffff8fdfff9ffff +b2cda07da7684d8b383d82273a7d2038791f32771a2a7614366b1d306c1436631e4e6440 +717e6a9fac98b9c1aaadb397b4c5a5f6ffedfbfff7fffffbfdfbfefffefffffffffefffb +ffffffb0c3ad27591c347d233e9427439b2a3e9625439a294194283b8c233f8d28378024 +367a253b7a2b2d691f265f18235a17366d2a477b3b4e82425484485780465d8048678851 +678a5053753938551f2f491c2a3e221f31212f41354456485d6f5f78887e899c7e849d80 +53754262834ef8fffffef8fffffff8fffffdfffdfefffffdfffffbfffffbfffffffefdff +fffffbfefffdfbfffffdfefffefcfdfffefdfffffff9fdfcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffefbfffffdfefffffbffff +fafefffcfffffefffafdfff5fffefbfefdfffcfffffcfdf5fafbf6edffe590c279418c25 +2c8614287e0f2d7c13357c1e377b243881273b8c263b93234d94363b9c1b419b2043852d +235a17133d0d254015304f14315a1840612ac5d6b6fffffafffcfffffcfffdfdfdfcffff +f8fff65272492b65193f8d27439c28449f2a429c2a429a2a4295293b8e243a8b24408c2a +3e8529377b243475212f6e1d3f681a3e681c3c681b416d20447325427121477423527f2c +4b7d1e4e801d53831f517f1d4f7923497226406923436c284e723553743b5c8036557f37 +3966115d833af7fff9fffefffffdfefffcfffffbfffffdfffffefcfffff7fffff8fefdf8 +fcfdf5fefffafcfffbfcfffffffefffffbfffffefdfffffaffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffcfdfcfcfafcfffdfcffff +fcfdfffffdfffffefffffffbfbfffafffff3fffdfdfbfffa91be7b3a881b2a78152e6c1f +285921325d27355e262f5a242958242a552a2d4a2b303f2a254923337e2340982842952b +3a9129357c2c335d2d284c1e345c1e2f5019374826fbfffafcf9fffffefffffffdfdfeff +c4e2be27571b3e8328449b28409e22419f2544a12e409c2d409629449a2d3f92283e8f28 +428e2a3b85243c832541882a3f7d273b7622366f1e396e204070243f6d22416d20467122 +41712741722344732242721c4879204b7e22497c1f5083264d8023477a1e497d1b52842d +44751c567935fbfffafffdfffdfefffefffffefffffefffffefefffcfbfffffefcfffff6 +fffefffffffdfefffbf8fcfbfefffffffdfffffcfdfffffaffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffffcfffbfbfdf8 +fffdfffffbfffff9fffffcfffefffff8ffffa9d5a044902c1b631130602e306227357a29 +38742a3a7427397424397126376b2b2e5f282b55232f54213051243c7b2c448e2d439229 +429d283b89242b531e1c30152437192e3f1f16220cc0c6c2fefffffdfdfbfefefcfefdff +5f8f552d6a1c3c8b2246a22642a22444a22843a02d429e2f429a2a3f97273f95283f9226 +3e90244192294291283d8c2337892739852a377b28336b223364223963243a6023395d1f +3158232f561f3761224270284374254273224475244073243f6e1d3f701e3e6f1e3c6e27 +3d6e1f486f2cbdd2b3c7d4b8b5cba7a8be97a5bb94c7dabaf0ffecf9fffdfcfffffbfcff +fffcfffdfbfffffefffcfcfafefffffcfffffeffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffdfafffefffffcfffafdfef9 +fffcfffffbfffefcfdfbfffbf2fff87bae6c26661a235a202e6c213889223c8a25407b29 +4277313e7d2c3a7f243776253669273360293466273c762a459e2a419e2943a22e429c2b +3f97293d8e2530691c223b1421291c1d25162a3026fcfffffafefffcfffdfefffbfefffd +2c6a1d3a8327429a2941a12444a42643a1273f9c273b9825429a293b93223e9625409827 +409627409627409627449a2b3d8e2738822135751f376b233561223259202e551c2c531a +35581e3d6423406c1d4a7d1e568d25579027548c2b4b82274d79204b791f497827407326 +42771f386d1533621a33621436611a3664193665153c691445701e628543abc69df4fff1 +fcfffdfffffffffdfffffefffdfffafcfffbfcfffffeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffefffcfefbf9fef8ffffff +fffbfffcfcfaf5ffefddffd54f9a352555193760244286213e931a4193253c8929338729 +3a832941843440793535672a326723377b243e972b43a8303a91282f841c389a213d9e2a +39852a3d892e3982282f561f2c3c2115200fb1b6b0fffffffffffff7fbfaf9fffaceddca +246d1337892348a5323ea02545a52a46a42c45a22d409d28429d2846a12c429d28409a28 +459f2d459f2d3f99273e982648972c3c842135731d35691f315d1e2c55192c581b305c1f +386021427028447823548e2768a93164a92c5b9f265b9e2d629d2f55942149861f50892b +4c86204b842347832b4582234d86274c88244e9022579d23569b1e4b8c144a841d4b8227 +cee7bdf8ffeffbfbfbfffefffffffdfefffafefffdfefdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffcfbfefffbfcfffffffeff +fdfafff9fff6c7edbc407a2d245b1a327b1f42982941972a45932e3e892a428b3143852e +398a213879273269263273233e9223479e2b3c7e272a521d2437232e4821468729408e20 +295d152d671d387c27365b2524451034492afcfff8fffcfbfffcfffefffff4fff59eb797 +28751542982d41a02c43a52c44a32d45a22d429f2a43a129429d28449f2a3f9a25419e29 +44a12c429f2c429f2c3d9a273790243d8f2b3e822d336b222859182c5a1c316123316221 +3b6d1641761e4b862a52942a589f2560ac2862b02961ae2a5bb12a61b52964b13160a52e +65a3285e99255c972d5a98295fa02a61a72b62ad2c5dae2b58ab2961b23169b93261b023 +618c3de7ffd4fcfffdfffcfffffefffffff8fffffbfffdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +f8fffcfcfffffffefffdfbfffffefffcfcfefefefffffefffefffdfbfffffffefffffefa +fbfff5b2dead236b15275c16378c27449b2a459a213c8d27438e33428d28408c2a418d2b +427a2f336b2a399027409b24347a24284e252f3e2b244319264a1c326b26429b2d2f601e +213919315724317f1c2e56222a3c12475d39fcfffbfdfefffefffdfafdf4fffbff619d55 +35831e469c2f44a12c42a1294aa43348a032459f2d43a22a459e2a449d29409b243f9d23 +40a32542a42942a12b419b2a3e932b3b862b326c202d5e1d2f5b1e336120386c24376d21 +3c711f437a1c538d274b8926569a2b65b12b66b92b63b72d66b9296bbe2e66b92967ba2c +6cbd3268b62f5ea92867af3162b32864b72b67ba2c6cbf3169be2d6abf2c70c5326dc531 +67bc2962a12cf2fff6fffdfffffefbfefdfbfefefffdfffcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffafafcfffefffffefffffffffefffdfdfffcfefffdf8fbfffffcfffffffafbfffa +a5cd98235d112c5f264199284a9d354099213b9227479a32489430468d2d408b22337f27 +33751d479b2c3c792b254c172546172954292a602c335926315f2144952f2c6820203a1d +23431a3c60323883262a4c19293b15445737fcfff8fdfffefffffffcfffafffcfe3f802e +39932142a42943aa2744aa2a43a52a419e2941a0283c9e2344972d41972a439d2b46a32e +44a12c43a22c46a53141a02c3c8e28397f273166202e5c1c316220336b203871223a7326 +3b721f4881224a86224a88235ca02f63b12a63b6266abe326bbd2d68bb2b65b82869bc2c +67ba2c66b72c63b12961af2865b82a6abd2f6ec13171c6356dc22f69be2b6dc63071ca34 +77cd34569f1988b16ffbfffafffefbfffefffcfdfffeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffdfffffefffffffdfcfdf8fafcf7fefffbfefffbfbfffafffefffffbfffefdf99ac88a +1b5e112f6b214ca12844a033449a2b419928439b2a41962e438f2b438b253b852639832a +4a8e29276319234920325d2836622539622a2d65242b6229408c28326f2a1e39162f4b25 +285326345230408029234719223215415436fffff8fffffffbfafffcfffdfefdfb398226 +409f2745aa2a42ac2643ad2943a72942a02845a029429d263a99233f9e2642a22747a72c +48a82d46a62b45a42c41a02a3885253473242d5d1f2e5f1e356f22367b203a7c243d7826 +3f79244a87284b89244f9028589e2a64b12d6abd2f68bd2e6ebf326cbf2f67bc296ec330 +6dc53172c7366fc43368bb2d69bc2c71c4346ec33267bc2964bd276ac32d72cb3374cd35 +74cc2c6ec72d5ea427d9f1cdfffffafffdfffefffbfcfdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fff9fefffefdfdfffafefffbfefffdfefefefcfcfcfefefef9fdfefcfffb9dc68a246219 +30792047a52942a12d459e28409d2a439b2d499e2740912841912e3987223e842e468630 +2e5622264c23347028387527386f2b387027376b233c7d2b317f1c1f37272a491f3b6124 +2a552a2e552643812b1e3d1e1a291235482cfefff7fffefffffdfffafffefefffa418f29 +3e9b2649a92e46aa2c44a92944a729439e27449b2a45992a38a21e40a32547a52d4cac2e +47ae2746ae2548a82a409724367f252e681e2d5b1d356823397e253c8a243d87243d7d26 +44832a4787294687234e91275197235fac2a65b82c65ba2965b62b6dc03266bb2a68c02c +6bc52f6fc9336dc63065be2868bd2c6fc4336ec3306abf2c6dc63073cc3471cc336cc72e +6bc32371d5345ab6137ca85bfdfff7fffafefffffdfefffdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffefffefffbfafffafcfffdfefdfffffcfffffdfffffffff8fff8a7d8971b6010377c1f +4ba62d3ea62b429d26479e2941a52b479e2b45912f428f253c8f2340913442842d2e611e +2553243a682a3f7e2d3270253c7b2c3778283e77303d85211c4412274626336526355a27 +32592a2e6722378223263724152012293823fffffafffdfefffdfffafffefffffd499732 +42a2274eae334aae3045aa2a3fa424409f27469c2d42932c35802340812f3d7a2a438f2b +49ae2e42b12641a124429128397a282e661d3366233d772a3a86243e912544932a418629 +4184274687294587254f94295ba22c62ae305eae276dc03261af276bbc316cbf316ac22e +67c02a6bc52f6fca316bc42c70c3336abf2e68bd2c6cc12e6fc7336dc6306ac32d6ec930 +70c62f6dd0376bcd2a4c8b19eefde8fffefffffcfffbfef3ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fdfdfdfbfffaf9fffbf8fcfdfffdfffffcfffcfcfcf9fff8bbe7aa1a611536831d4aa929 +45a72c429a2a46a52d499e2941a22142982d45903544902c3c8e2044922f28651824511a +3574253d7d27427530387b2b327d223579244687371e4f17293f1b3167292f6124375f2d +2b62282e622437851f243c1c1419121f2a1cfffefffffffffefdfffbfffcfffeff4d933b +41ab2345af2947ae2b42ac283da323419e2940912b2c721a2d4829223b1d12350b236116 +3e9a2b42aa2d3e9c2c378426306d202a6418337221397f2633811c37881f3f8e253d8724 +43862546892c478a294a8e215298245da6305da92b65b32b5fac2a62af2b6ebf3671c436 +61b62567bc2973c83571c63365b82c65b82c69bc2e6cc1326dc23169be2d66be2a6bc32f +6dc23369c5366fcc36539c17b2d1a5fffffdfffcfffefff6ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffdfffefffdfbfffdfdfefffffcfffefcfff8fff3d6f2ca1f6b103d7e224aac3142a924 +46a0254ba835469c2f48a428469b243d922d43992c47982f4a91312f6d181b4e153d6e2d +3f773036822036791839792330742b36802b306f1e20311e38622336712f32642737672b +26622434602b438b281b370f171813151c14efeef4fefffffefffdfcfffafff5fd6aa660 +3aa91c47b12948ad2d46a52d469e30408b303269261b411212240c1d3d14356c29499638 +3e9b293c992744993235802531692230711f3a85263d8e273a88223e8825418c273f8c24 +438a2444872a46892a478a204d9120589e2e66ad3764af2e64ae3159a62668b53170c039 +60b12863b42969ba2f6cba3064b42d66b62f69ba3163b52c61b42868bd2e6cc1326dc233 +66bd3065b62b65b82a61b2297eae64fefffafff9fffbfffeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffbfffffefffefffdfffefffef9fffefffae9ffdd416d303982284ba9314aa62747a72a +43a52c4299264da62e3d9d22428c2d439b2b3ea0273a921a46862f1a461535652b41792e +3a862b417c2c3b7e2e32762b3778244a7f2f1e3b0d2b522535782b356f25317522365e2a +3d662e346e243a862c22361a161513101612dedce7fbfffffcfffbfdfff5fff9ffb6e9ae +349f154db031459d2c358620367a252a5c1f1c3517191e17264f1547893147a72a40ac22 +46a9284397283c8824347e1d3166223478213e9127409629438f2b468b2e428a273d8c23 +3f862044872a44852752952b5ea2314c8f254f9523569e205fa92e4e981b58a52567b430 +63b12a62b0295da92362ae2863b02c5faf2a63b32c62b22b62b42b67b93065b82c62b529 +64bb2c6eb92b66b12352a320599234fafff6fffcfffcffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffcfffffdfffefefcfcfffafffff8fbfff55b8d522a92154dae2d4da92d48ab2a44a426 +459e2a47aa2c3ea025448e2f469d2a479e2d3b912642972f255718335427387e263b8926 +357f203f7b31387f233c752e338b23315d2221341e357b233d7b2e30791d36732e337023 +377125337b253a882522391d181818131313c8c8c8fffffffffffffdfdfdffffffffffff +58a04e2c851b307d17305d222c4619202a1116231923531943a22a43a92942a62a479f31 +439d2c3e9d2534851c3a73242d6c1b3a802744952e3f97273b95233e94253e8c263f8626 +398a2442892d437d30437b2056961c68ac315197235ea6285aa72367b43261af2559a51f +529c216eb93864b02c519a27589f2761a82e5ca42661a92964ad2a67af2f63ae2f5da72a +69b32868b4305caf2166ba304d8c19def6c4fffdfffefcffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +f9fff4f4fff7fbfffcfffbfff8fffb79b96b30931249ac2e42af1e49ad2947a22b419f27 +4dac344298294193274099254aa12e419a263e98273d7e2c2350173b702c3b7f2a3c8229 +3a81253e7e2a357e243f833037872623491a2a4b203a802a3a782b347d21397631387629 +3a74283479263c8826213a1d121212171717b8b8b8fdfdfdfffffffdfdfdfffffffefefe +e1fdd7446e3e2b56202a48241f331a112b082456174b9d3746a42a40a5253d9f24419929 +3f982a3d9a27358320356d223a8027438f2d43962c439d2b439d2b3e9425418e2841882a +3d89253f8223417824467a27447c17619f304e91205b9d2f64ac2f5ba22a64ab3367af31 +61a9295ba22c5da6335aa429539925579d2959a02a5fa62e5da42a5ca329579e265ba22a +62a82b59a02860b02d69ba3949871ab9d49ffefdfffffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fbfefffffcfffff8fffefffbb1dda23c922344ab2642a6223da11b44ac234ba92f48a230 +47a62e46982c48932e47a8274aa32f3e9c2441992b335b262f57223e872d3c7d2b3d7c2b +3d812a3c812436822743912e3877281a3516376a253c812e3776273a81253976303b7c2a +3b782a3477273f8928223d1c1717171313139f9f9ffffffffffffffffffffffffffdfdfd +fffdfdf9f9fbf8fffbe8f6e99ba3a51b3a1a47942c3ba423449b28419c233c9a223e9628 +3e952a3f962b39862839752b41922b4b9e32409827429d2847a02c419428418d293f8427 +3d812c3a78233b6e1f3b68253a6b294c832f468123437d2853922957992b4e902657992b +599f2550942551942b579e265395294c8e22519528589c2f569a2d5296274f93225fa430 +5c9f2e4e902465ae3858a32d417b149eb984fcfdfffffffdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fbfff6fffefafffef9dcf8d275a164e1ffd8f0fff3dafed88ec87b449f2a3da41f49a72b +469f29479e2b49a02d47a72a45a02943a1293f852c2b4c1f407233388525397a263e7b2b +40852c3c86253b8d293f952a2d5a1f1f381a3e842c3a7e2b3576243d842835752b3b8129 +3b7b27357626418b2a24441b1515151313138f8f8fffffffffffffffffffffffffffffff +fffbfffffbfffefefffafefde4deea213421397f1f399121408e283e8f26398c22388b23 +3d8f293e8e2b368124387c274098274aa5303e9c243c97204199284091283e88273b8025 +3b7f1c438023467b1f366514305f19447a24558f284078153f751d569029558f2b4f8a2c +518e2753932549881f519329508d264c88244c8a274d8b2a4d8b284d8e264e902456982a +45841957942d5b9e2d4d92273f78177a955efefffffefdfbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffdfdfbfbfdf9fff8e3f0dffbfffdfbfbf9fffaf7fffafff5fff4bef2b047a72a44ac21 +449c21479f2748ab2c46a52d419f25469e2d306120305b25458936357b23377c2340822b +428c2b3d88293d95253a91282241182d4e213c8d2e367a25377b243f892a3376273a8727 +3b8027377528408a29254d1b141414161616656565fafafafefefefefefeffffffffffff +fdfffefffffaf8fcfdfefffdfff9ff1d23192d5b1b377124357b233e842e40862e3b842a +3c852b357b22307a1b3f8b2740a02546a62b42a0283a95203e92233f8d273c83253a7f24 +3d7f1e3871224c802e50802c33651c487d2f558d2c5b922c43751e3567104c8125487d23 +487e28508827508922578e314c812550872c4d832b497f274880254d8627508c284a871f +49871c59902b4e891f4987243f7619627e44fcfffdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffbfffffefffffefffff8fffffcfffcfffbfbfef7fffcfffffcfff9fff8b7f1a43e9f1c +49a6244fa92e42a72743a92c43a129408a29254a17407a303d8a2a397a283b85263f892a +4395293b8b2a3f98243989281d3417376826368c293879253b8428418d29347c283c9227 +3c86273a792a3c8824285a1d1818181414142d2d2dfffffffbfbfbfffffffefefefefefe +fffefffcfdf5fefffdfffffdfffef82a302216360f3262242364142e6a22366f2a336f25 +3572252d671a307719469d2c44a92943a62844a22a3f97273e8f283c88263980243b8027 +346e242f60282a5520436c30406c2f2a581a36651d3e6d1d57882f3e6c24376618477721 +3e6c213d6b2046762244732245712245712442712148772748792740751d4b80264d8226 +548c294f81224a7d1e457d263c701b5c793ff8fdf7fffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +f8fffff8fcfbfffefffffffffafaf2fffefdfffdfffffffbfffdfffffafff7ffef91cb7f +429d2644ab2647ac2847aa2b479f2e346c21295719468a353683233d862c3e8a2840912a +4098273e91293f9928387e262133193a7b29368b243a7b29408e2b42902a3781283c9926 +3d89253d7c2d3c89233168241616161313131b1b1bfcfcfcffffffffffffffffffffffff +fffdfffdfffcfefffbfffefffefffa4a55440c240a345f2a2f6e1f285b1926531a28581c +336327316123367a2347a62e47ab2d44a429439d2b42952b3c8a273982263a8027367a23 +3668212b57182f54202346103d64233e6721325b19375c193965164e79342a5412436c26 +37601e31571c395f22385f1e375d20315819375e1b3f6822406b233864193e6c2147752a +3c701e4a7526436e1e44762f39691d47642afcfffbfffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffcf9fffffdf7fff4f8fff9fefefffffcfffffefffbfffffffffdfffffffffbfff4fff2 +55a74338b01b43ae2249a127489b2f2b571a377125428b313681263e902a3e8c27429529 +3a972243972740992f36752424371b38842a3b8e243a7b2b42932d4190273884293c9b25 +3a8b223e7d2e3b8a2139752b1d1d1d171717161616b0b0b0fffffffcfcfcfffffffcfcfc +fffefdf9fffffbfff9fefdfff9ffff737e70111f0e2c512540802c2f601f294f1c264e1a +274f1d264e1a31752245a83144a82a43a22a3f97273f9029378223377d243c822a2d711c +335c202c53142d4a1c2e48232e5014375a163c5d28334e232f59194f7b30335b1c335727 +3457212f521c2c4c1d2c4c1b30501f3455204063293960213a611e3b6420396321345e1e +386a25426928355d17325f242e5d17345119fafff8fefeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffefcf9fffdfcfffbfff6ff +b6e0b032a41949ad274aa12c42892d235d10458c303e8028408c2a3c97223f8d27449a2b +41922941972a3d9527346e24244018429430398b253b842a429a2c3e912939872242932d +3d9028398c223687213e892a202e171514191717155b615dfbfffbfffbf8fffdfffbfffa +fffffafefefffffefffbf8fff8ffff8cae7c10320f28421d4992362e871b2a5f192d5928 +2142172644222a521e3dae2a47aa2c3f9b2c3f912f41882c3983242f7b20327525316220 +245715274916293a182534171f371329481c30501e334f1c304e1c3f6029416829264f0d +3a62232b501a2d4c202f4b252c5012385c1e385c1f37581f33541d32501e3654222f4c1c +395a2130511c224411355d1f446c2637561de8f6ddfefeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffefff6fffafffffffffffd +ebffe847b03047a82549a22c387623306e1b479130418d2b43912b3b9124409128449a2b +3f90274197283f9729336d2128441c43952f398b253b8629439b2d41942a3a882342932d +4093293f92283c8d2744902e2c481f161618140f131f2521fcfffdfffefdfffdfffcfffb +fcfefdfefffffffbfffffefff9fdfcb9d1af22471c233819439229419c25327122376924 +26511c243f1624391a418a2e48b52847a22d3d8b263a8624357b223069223264252c611d +2f4e242c4a24223f202d4628253d1b1a300c233b172e4825233f0f2d4b17446629406522 +466b2831531732501c2d49193c5c2a2e4e1c2d4b192b48182d4a1c2e491e2843182d481d +37561a4464254b6e2a395e192b4f122b461de4efdeffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffefffbfffdfcfafdfbfff8 +ffffff81d16e40a12049a22c30661b40852a48963043992a45982c3f8d27429a2a439b2a +3d90264199294199292f6c1f2a491f42972f388d253d8829429a2a41942a398a2340912a +3f952a3f95283f902944922f2c611d1618171d111d131716c2c2c2fffdfefdfdfffefffd +fcfffffdfefffffdfbfdfffafffeffe0ebdb25571a2a401c3c88243d912232732131631e +2b621f27411a1d2a163055224aaf2b439f233a8e1f3f8b29326f22335e26325a26215019 +2e4920253e17253e1729461a3858293855271f330e29361823371c223a1a29431c2c491b +3754242b47172841172b411b2d472226401b2b452028401c263e1a28401c223a1628401e +304d212f4922304a23254216244415314925f9fff8fdfcffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffcfdfefffffbfdfcfbfff8 +fff7ffc9f9bd3e9f1c4299283466214896304298293fa224439b2a438d2c46a12c409b26 +3d9024429a29419b2a2d6a1c2d4c2043992e3a90233f8d2a419b293f95283b8c25409329 +3d93263f95283f92283e8c27368124182313190d1b141615646265fffdfffcfefbfeffff +fcfffffefffffffcfbf9fff9fffcfff5fbf9387a232b4913388125448a34317021274e22 +2d691f1a39171930131a331636752644962a39901f327822306424346224274e19274624 +213c1b20341922341a1c30151732111f3a191d2f1528312022302324352321331b1d3115 +24391a22351720331729391f21351924381c23371b2134181f3216223517243719213416 +1c35151a31171f321e2940241e3612586b4ffafff9fffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfafffcfffbfefffa +fffafff2ffea45a9253b88223c7526489c2d409b2640a523409b2647912e47a22d3e9924 +3d9324439d2b429c2a2d6c1b2d4e1f429a2c3a922242902a449f2a3e96263f922844972d +3d95253f9727429529398a233b92271b39131c171d1515171d1b1cfffdfffefffdfcfdff +fdfdfdfefffbfffbfcf9fffffffdfff6ffff41892537611733861e49953a2b6c1a244621 +3064221e3d1b2a45221e32191b331b3668293c822a2f74232b641f376827274c19294225 +283b1b21381c162e181c2d1b212a192229171d2c151b311a1d29131e2c15202e15202e14 +1c2a101f2d14202e17202c161c2b141e2d161f2f1520301620301622321727371c25351a +243d162d421932441a32441e1e2e13849180f9fef7fffefcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffbfdfcfffefffdfdfbfc +fffefffdfcf853b33531731b418b28459e2a42a22743a627409b2446982c469e2d3d9622 +419728429f2a409d2831721e2a4f1c439b2b3b952343942b419e293e96253f9528449a2d +3e96253e982642982b3b8c233b932530651f0d190d161417191816909092fffffdfcffff +fffdfefdfff7fffefffbfffffffcfff7fffb6ca755385f1e3a9820419a26347a22325b21 +21461a29451c293d2219251114181913241229511f2f6f21276617305c2128441b213c19 +253c122439181f331a253220232a18222a13212f151f3317252e1d242d1c212a191e2919 +1f2a1c20281b1f271c21291e1e2c151f2d1626341d202e171d2b12243219233319223218 +1d3115233316263319212b13263120e9f3e8fefffafffffbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffdfcfafbfffdfffcfffffffb +fefffffffffd5bb2412e671a44a22846a12a45a82a48a62c429d2645a029489c2d3d9423 +439b2a42a028429f2a387a232a4f1b449e2c3d982345972b409e263f9927409627429829 +3f99273e98264298293e91273f902a3d8b28133210151014141510272928fffdfcfafffe +fffdfffcfff6fcfdfffffffbfffafffefffb97b38a1c2f11398322378a1e3c802b386927 +162f0f2440171f2e19171d0f1d1f1a1517121d2f152c581b32671f2d561e24431a27411c +23351d1d2c19152113192519182617202d1c21291e12171110170f141b14131915121615 +161a191218161016141319151824101c2814232f1b202d191c29151f2c1a1e2b19162512 +152616101b13151918222423c2c7c0fcfffafbfdfafffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffefdf5fff8fff8fffafff7 +fcfffffcfff85eab4335692147b12947a52d47aa2b4aa32f449f2a43a6274a9c303c9223 +449c2b43a12942a1293d7f282a4f1b45a02b3d982145992a3f9e26429c2a419728409828 +429d283f9a2541992943962c3f8a2b3f9c272a55271e191d13160f121615736d6ffbffff +fffafffbfff5fbfffffffdf6fffbfffffdfa5e5f59131418325d253e7e3028641a2a5d24 +22391c1f3e1e1e301a1b23181a1e0f1e26172b3721394e25395c222c591e2b5122213615 +24221345523e5973582e492a27371a2d321c232719747973939b8e878f84888e84838881 +7e847a7c8278747c6d5c645525301f2732211e2919232e1e1c29181f2b1d4854465c6a5b +6374617c8874919584e8eadffcfefdfefffffffffffffefcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefffbfffdfff8fff9fffcfd +fbfffbfefff661904838822147b12b41a8253aa02036a01c34a017339f182f9518399a26 +469f2942a12947a2233d8e252b531e399d29469e23439821459c273b9a263c9b27358e1a +358e1a33921e399725439a273d94293e982641882c19350f17151a151219121713d4dad0 +fffdfefbfffffffbfffcfefbfbfffdd8bfc52e1018251214181f0d263a212a4526273c1d +1f32161c30171b2e1a14201215251b2030162f4c20355c27365422374e203a3e1b3e220d +601d0c7e4e387fd79b5b74563c3a23443923525d4cfffdffffffffffffffffffffffffff +ffffffffffffffffffffffff68905c3554422e32312e352535381d575b4cfffcfdf9ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffefffffefffefffffefff9fffffafffdfffffaffffffff +fffdfffffcfffefcfffffefffffefffefcfffefcfffcfefdfdfdfbfffffffffffffefefe +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffcfefbfffdfffefffffffeff +fdfcfafefdf8508d3d3d9b1f44a5224fa72f8dd073d0f9bfe3fdd8e0ffd5ade19764ac46 +3c992637a11946a2254093292c541f3d952d41992b489f2c33a11a3998204d9b3689ca76 +90cf7e77bd654a9c3633901e409925328f1c4a9c3a2b5d2015240d191514181119403a44 +fefffffefffdfffbfcfbfffdfbfffa8f585d50181b3517152212121a1a12151b11181911 +191911171a13181a171614150e1e14312a1a492b13622a137923147b1b0f871a179c131b +a31919a1352b86c78d557e563741263c3e26b5c2b0fffdffffffffffffffffffffffffff +ffffffffffffffffffffffff9bbf93477052353f343b402c35351dc5cbbdfffcfffbffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffcfffbfbf9fbfffffcfffffefbfffffbfffffffbfcfff8 +f9fdfcfcfffafcfff4fbfff9fbfffffcfffafdfff5fefffffffffdfffffffdfdfdfefefe +fffffffffffffefefefefeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefffffffdfefefcfffffdff +fffbfffffffa398928399e1a79b764e7ffdcfbfffdfff9fffffafff9f8f6fcfffaf9fff8 +a4e798499b2d3a9f1f43a02d27481b3c8d2e429c38389e1e428c1da7d29cf5fffaf8fff8 +fffffffffefff1ffec9bc97e3a9520399322379024478d341b360d1e111a1e12200e1712 +818284fffffbfffefbfbfffffffdf18d2f3072121349161239161c2a16181f1315201418 +20131a1812161914181f141a231417400f126e16149e1a18b8181ab21619ad1416be151c +d7121cc51d1d99bf825c95603b452a525540fbfff6fffdffffffffffffffffffffffffff +ffffffffffffffffffffffffc5e3c1558a5e3e50383f432864614efbfffafffdfffbfbfb +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffcfdfffffafdfffcfefefffffefffffffbfefff7fefefe +fffefffcfbf9faf8fbfffff8f7f8d9eeecd5fff9fafffbfffefefcffffffffffffffffff +fefefefbfbfbfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefefffcfcfafffeffffffff +fffafff0ffe831861f7ac465fffffffefffafefff3fdfff4fffbfcfffbfffffafffffffd +f2fff4cde9c03c9e273ca31e324e263583203fa132319c1ac4e5b8f5fff1fafcfbfffdff +fffafffff9fffefcfff9fff3cefac54c9738309012499d2e3b6b2d1b2d170f160f131a12 +19141aafaba8fbfbf9fefffff1dad49315168e14116016133f1312321613271815241518 +1f13171814151615111a15111910113d14186b15149e1713b50f0fb11113b51b19bf1112 +da0f13d31614a5af705c9c5f3b3b239b9587fffffafefdffffffffffffffffffffffffff +ffffffffffffffffffffffffebfeea67a76a415b36373a1bc8c4b8f9fffdfffefffffeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffcfffffdfdfbfffdfffdf8fefdfffcfcfff8fffffdfffcff +f8fff9c5d1b9ebffb9daf58eb8ce7cadb989b8bda6fcfdf8fefefcfefefefdfdfdfefefe +fffffffffffffefefefefeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfafefdfefffdfefffa +fff9ffd2fac83f882cf4ffeafffcfffffefffdfdfffffffdfffff8fffff8fafff9f5fefd +fdfafffffcffa2de9630980d2b531f3e84243096179ad488f7fff9f8fff8f9fff8fdfff7 +fffffaf7fef7fbfffdfefffffefffdf4ffea6da858248b083ba12228641c182a14151611 +1c131815141297989afff8ffc48e8ea212129a16117218184c17133a17112b1613241415 +2115171b1a181819131a17101818163213186115159b1712ba1615ad1416a71313c11515 +d31715dc1a11af975b5a9f5c46412bede6dcfffefafcffffffffffffffffffffffffffff +fffffffffffffffffffffffff9fffa72ba6e3c572e68684cfffaf6fbfffdfcfbfffffbff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffefffdfbfcfefbfbfbfffffbfffefffffefffbfffcf4fff0 +4e883e3e7e1eb9faa09fdd945c9a4d5994405c943b7db44efffffdfffffffffffffdfdfd +fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffdfffafcfdfffefffbfffffa +ffffffabe2a14e7c3efffafff9fffffffefffff9fffffcfffcfffffbfffffdfefffffdff +f9fefafffcfff8fff368bc4c2461142e6c1956af3bfffefbfffcfffffcfffffcfffff7ff +fffbfffffefffbfefffffefdfaf9f7fff9fffcfffa89ca7a2f95163b91243562291e311b +191c1112171013141872676d822b31af191a9b17127b161a59181c4214163113152b1218 +27141a1d14191814151d1415101d16271416581617941713af1112a91c25a8272cae1517 +cd1714e0130ebf764963a661666b55fffff8fefffdf9feffffffffffffffffffffffffff +fffffffffffffffffffffffffffffd90da853c522ecdccb7fffdfffefffdfffffffefeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffefdfcfffdf8fffafefffbfff9fffefbffcee9c8467f2e +3e9a1d52af3a5aba3c3e9f1454b1245db427479617377a19e9e9e7f7f7f7ffffffffffff +fffffffefefefdfdfdfefeffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffbfffcfffdfffffffdfcfcfa +fbfdf87daf729dac99fff7fffffefbfdfff9f9fff8fbfffafefdfbfffdfffffcfefdfcfa +f9fff8fffefffff7ffd1ffc92b7119205e13b4eda6fffafffffefffafafafffffdfffefd +fdf9f6fffffbfcfffdfbfffffffdfffbfffdfdfcfffffdffdaf6ce4f9d3842952d326723 +19371114211015131617140f8b1c22b61a1b9814107d14185914194412153414152d1418 +2714181d141918131720151b2824215a40497f3e4492211d961414bd5e64e49c9dc16860 +cb1b1be61211d25537669859aab29dfbfdf8fefffffdfeffffffffffffffffffffffffff +fffffffffffffffffffffffffffdff8fd87e6b7b61fdfbeffffefffffffafdfcfafeffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffefffefffdfbfdf8fcfcfafcfffdbcd7b63577203fa01d +4eae264bab2549a6244aa3254794243c792b305c2751783ffefefcfffffffffffffdfdfd +fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffbfffffff7fffffefffffeff +fefff8557d4beee8f2fcfff8fcfffffefdfffffdfffffefffefdfbfefffdf9fffdfbffff +fffffdfff9fffffdfff2fff85a9b47185c11d3f0d4f4fff4fefff1fffdfffffcfffafff9 +fcfffbfffcfffffcfffefff3fefffffcfdfffffefffff9fffffeffeaffe4448a31349b14 +346a2e24381f201a1a181a0d94191bb21212a11b1880161657171843161133181128150f +2217131c1b17171715191516323c345b52559367687d20188a1d1ae4949dfbbec5ed9999 +c52321e91416d134234f7037e0e1d1fffefdfffefffffeffffffffffffffffffffffffff +fffffffffffffffffffffffffffafd599e43c9d5c1fffffafafafffffff8fffefbf8fdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff8fffffffefffffafffffdffe4fddd41822e3ea12343b426 +49a633429d283b91223c872c37702b2e571f264013c2cfb1fefefcfffffffffffffefefe +fffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfbfffffdfbfbf9 +fffffd979795fdfdfbfffffdffffffffffffffffffffffffffffffffffffffffffffffff +fcfffdfff9fffcfffaf8ffffbbd6ad115114aeb7a6fffbffffffffffffffffffffffffff +fffffffffffffffffffffffffffcfffdfefffbfffafffffdfffafffffffde8fddc598645 +34922032712028441b15321c321f198b18259b0f188718115b151d491217371412281914 +1f1a162213162211171b161c3636364e4a4b82646275292b90333becaeb3f8bdc1d26c77 +c71815e31311c6251b4a4734ffffeffefdf9fffdfefffefffffefffcfdf7fffff8fffefc +fffefffffffdfbfdfcfcffffebffdc829076fcfff6fefefefffefffffefffefefffdfffe +fffffffffffffffffffffffffffffffffffffffffffffffffffdfffbfdf8fcfffbfefcff +fffbfffffbfffffefffefefcfffcfdfcfcfefffefff5fff351953e389d1b44ab2843a628 +439b233a8c26357d27346c2131571e2235174c5244fffff6ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefefcfffffdfffffdfffffd +fdfdfbfdfdfbfffffdfcfcfaffffffffffffffffffffffffffffffffffffffffffffffff +fbfffafffafff9fcf5fbfffdf4ffef1954128d928bfffdffffffffffffffffffffffffff +fffffffffffffffffffffffffefefcfefff8fefff6fdfcf8fffcfffbfafff7fff8e8ffe2 +4386372f751c3f7925336528144817452d138517186a0e0f5319184f14163d17162d1513 +2910132115171919191d14172928264a46477b6162894447c67079f3b6bbeea8aaba414a +c90e1fef1a14c0160967353efdf6fdfffefffefffaf8fffcfefffffefffffefffffeffff +fcfcfefffefffffffffbfef7deebd7e7f2e2fefffafffffffffefffdfbfefffffdfefffb +fffffffffffffffffffffffffffffffffffffffffffffffffffdfefffffdfbfdfaffffff +fffffffdfdfbfefffdfdfffcfefdf8fffcffefffee5a98453a85204a98353d922b3d9024 +3f8626387d24336d2328531e233e1f0d1b0cc1c7c5fefeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffdfcfcfafdfdfb +fffffdfffffdfffffdfffffdffffffffffffffffffffffffffffffffffffffffffffffff +fbfff9fffbfffdfef8fefffff9fff9508042747879fdfcfaffffffffffffffffffffffff +fffffffffffffffffffffffffefff6fcfef3fffff8fdfcfafffefffffefff9fdfefbfffd +fffdf357864f217216427d2b2e662521511f55321c851917581212461612391614341115 +2b10152216181c181718141323221e504a4a836a6e90575de79ea7efb3b5de8889b01d23 +d91521ee1617b7120c6c1921d3decdf9fffffffffffdfdfdfcfdfffefffffefffffdfeff +fefffffdfefffbfbf9fffff8fbfffafefffdfefefcfffefffffffdfffffdfefffbfefffb +fffffffffffffffffffffffffffffffffffffffffffffffffefffffdfdfffffffffdfffa +fbfffafcfffbfafcf9fffffffcffffd1e6c746862f3c9a20409128397b23387824306e23 +2e65222d5f1a284d17253e21101d13525952fdfffefefeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffff +fffffffdfdfdfdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fdfff9fffcfffffffbfefcfffffeffa0c4985c615dfffffbffffffffffffffffffffffff +fffffffffffffffffffffffffafefdfffffffffdfffffdfffefefefffffdfdfbfcfffdff +fff6fff8fffa5b8458265414323e181b27191926125f3016621616431610311410301315 +29161824141522141419151224241c4f46477d666cba8891eeafb8e6a8abb04e4db41114 +dc1512e21114ab1d1b73220f4580249bc289fdffedfff9fffffff4fffefffcf9ffffffff +fefff8fafff6fffffffffdfffffffffbfbfdfffefffffdfcfffffdfefefcfefffdfeffff +fffffffffffffffffffffffffffffffffffffffffffffffff9fffdfefcfffffdfffcfef9 +f6fdf5fefffffffefffefcffd0e8d22e761347a92041a0283b9229387f1f376d222d5d23 +295323214515253b15212d191b2117d9dcd3fffff8fffcf9ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffefefe +fefefefffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfcfcfcfffefdfffcfffffaf8ecfff074786afdfffeffffffffffffffffffffffff +fffffffffffffffffffffffffdfefffffefffffafffffefffffffdfffffafffefdfffaff +f8fffff8ffff9bae9b0f330d2635201e171e101c1a2230195028204b19183815132b1716 +2a141626131521161422141329261f4b41427e676dc3969dedb0b8e8aaafae4e4faf1316 +d81415e1191b941411783d1564c92f56a41a89b057f6fff4fffefffffdfcfffcfdfffdff +fcfcfefcfff8fbfdf8fffdfffcfafdfffefffffefcfffffdfefdfbfefefefdfefffeffff +fffffffffffffffffffffffffffffffffffffffffffffffff7fffbfffefffffcfffffffb +fefffdfffcfffffafffefffa50963d43a62745ad24419f253e9a2b3884293870252d5f16 +28501e213f1922341a1b250d535a48fbfef7fffefdfffcfbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffdfdfd +fffffff9f9f9fffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff +fffcfffcfffbfdfcfafffefffffcfbf8ffffe9eddefeffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffbfefefefdfdfffffffffdfdfdfffefcfffffffffeff +fcfdff8591851a3b201c321b122311142b1b12140f1b171627291b3a1d194514183b1417 +2d15152617142416152113121b18135041448f7479ae7d81e3a0a9fcb9c2ea9598af3134 +c51518cc0d1596151a78531c62d02370d12c65b82072b951f2fff9fbfffafffbfafffdff +fffefffcfffffbfdfafffefffffffdfffefcfdfcfafffffdfefefefffffffffefffefdff +fffffffffffffffffffffffffffffffffffffffffffffffff8fffbfffdfffffdfffefffb +fffefffdf2fffcfffaafcea233a21545a02747a52d41a5293f962d3d882d3b7d252d6617 +30591d2b492521331d1e2e1347573af6fff2fffefffff8ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfffffffdfdfd +fcfcfcfffffffefefefafafaffffffffffffffffffffffffffffffffffffffffffffffff +fffcfffbfffdfffffbfdfefffff9fffbfffffffffbffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffbf8fefffbfcfffbfefffffffdfffffefffbfffff2fff8 +4d62591a261224371b1820111d1d131d2a18171b0d1a1112101d141d1c17391718411316 +3216132c17142a14161f13131e18185c4c4f947678b37d7db3686fefa9b3ffc4c9e18588 +ad1e1ac4151c9d17206355146dcd2e6ec33471d12963c9277dbb4ce6ffdcf7fffffefff9 +fefff3f9fdfcfffefffffefffafaf8fffffdfefffffafbfdfefffffdfdfffffffffefeff +fffffffffffffffffffffffffffffffffffffffffffffffffcfffdfffdfffffdfcfbfffa +fdfefffffdfff0ffe648922f3aa420469c2d499f32409f2b3f92283f8926367b20356e29 +2b511626421a24381f28421d2c4d1888a674f3ffedfeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffff +fdfdfdfffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff +fff9fffbfffffefffafbfffdfffafffbfff7fffefffdfdfdffffffffffffffffffffffff +fffffffffffffffffffffffffffdfffdfffcf9fffbfcfffffffdfffffcfdb9c5b92b452a +14320e1b3a112435151c2b18171d19151419161f1e161616101a191419151f1a14331a15 +3f13143213112816162815171c1618635054a78886cc908f924046ca828efbc2c9ffbdc1 +d7625bb6180d9716115a602061b22f62a62d75c92971d03666c1265fa21eabcd81fbfff4 +fafdfffcfffffffffafffbfffefffff8faf9fefffffefffffcfdfffffffffcfcfafffffb +fffffffffffffffffffffffffffffffffffffffffffffffffffefffffcfffffffbf8fff8 +fafefffbffff8bbb7d329d1146972e369328388e293f8d2040941b38862037732b285f1c +2a4a1828411a29402327481b366517528328a8c78cf6fff2ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffcfdfefcfdfefffffeffff +fffefffffffbfcfffbf8fffbfdfffefffffffffdfffffefff8faf771806d102b08204416 +284c1e203f161c34141f2e191d2518181d16151a13151a131217131b1a15161e11242f1e +322618381c112f16112b171927140e6d5054b68c96d49ca5954a4e842b2ff9b1b5fbd4d5 +fd99a1ba2832851e0b5475264d912469b22f77c2345db7245ba63069c02364c41c80c260 +f1fff7fcfffffbfffffefdfffdfefffefffbfefffffefcfffffefffffffbfffefffdfeff +fffefffffdfffffcfffffcfffffefffdfef9fdfff9fefffafffffdf9fffbf7fffbfffdff +fffffab9dfb040912a3fa71c41942a3a8b243882213a7c243a7427376c262e611f245617 +2e41252c491b325c1c3d7126437e2a498b2958a42a69bd31b9e29cdffccef7fff4fcfdff +fffbfffffffdfcfffdf9fffffcfcfffffefffffcfcfffefafffffbfdfffcfffffdfffffb +fffefffbfffff8fffffffaf9fffffbf8fffd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffdfffefefefafffcf9fffb +fffffffffcfffffcfffffefffffafffffffdf4fff09ab3962c4b2912320d22401e243d1f +24431a233d1a21351a1e2b191a2217191e17181d17161b15121b1818171222261722351f +26321e321b13391213301317301712714a4dbd9097d5acaaad625f96141ed05a66ffd0cc +ffb8b8bb3d496f33115c923c4a872a477d1d53861d5da71e70c53272cc2f73c9286bc11e +75bd3de9ffd4fdf9f8fffff8fffff8fdfbfffffefffefef4fffffafffdfcfffef9fffffb +fbfffafcfffbfefffdfdfffefefffdfefffdfefffdfefefcfffbfffffefffffefffafffb +d7f5d13a7a2449a42d40a5253d9328388922337d1e32721c2e661b2e5f1e2d591e29541e +2b531f2e5f1d38721e427f224282244286214a972557ac2d52a52356a42d64a7407eb759 +9ecb76b3d78fc7e2afdaf0caf4ffeafafff6fefffffefffffbfffefbfffafffffffffcff +fffefff1fffbfffcfffffffdf6fffffffdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffcfffefffffafff9fbfffb +fefffffffbfffffbfffff9fffffeffbec6b9435e3d1d49142c5e2324511a24481c1e3916 +1e37191f33181e2d1a1b2318171c16191b16191e18181d17151d1f15140f222f1b193819 +1b2e18271e17381a1a3d13153c1a1174363bcd8c92dda6a1b0514da00a13ae1c26e27878 +d25654a616207c5d1a64a434498627417b2659913a66c33663b2326bc62d73d02a6ecf20 +69cd1d68b032f1ffd9fffbfffffcfdfffdfffdfbfefffff8fbfdfcfffefffdfdfbfffefa +fbfffbfafffcfafffcfbfffffefffffdfcfffefcfffffdfffefbfffffafffffefdecffe4 +44883336941c3fa2233d9c2640952d3c8d2737802434742032671f326020335c22325924 +2a6219336e1e3d7c23437f273e7a243c7b22448b254f9d2d539d2e4e9d2a4da62855b628 +5bbe2355b41c4da4194e9d204e8e1e639c357bae5298c374c1e5a8e8fddcf8fefafefaff +fffef8fefefcfffefffffcf9f8fdf6f9ffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefffffcfefdfefffbfffffd +fffefffefdfffefffbfcfff36b86652040191a3f13254f1d3e6b3438632b244b14254a14 +1d2f19182615141e13161b15191b18181a17171c16181f181a1e1f1919111e3d1d174018 +1c240f1c211a24271e41181258130e7722259d41469a3334931614a91a16ad1313ba151b +c417139e0f09929e3074b6324f8c253f77203d64214f9429569a355faa2b6bc62d72d53c +6dce3167c6246dab40fafff5fefffffffff6fefffafefefff9fefffbfffffcfffffffeff +fffcfffffefffdfefffefdfffffdfffffdfffffdfffffdfff7fff3feffffbdccb7478230 +46a62841a52740992b3e91273b8b2a388525377d24357622356f22376c24376a25356624 +386e223770233a7025376a2732632135691e4181214e98294ea32151ac2955b93257c332 +59c62f5cc62e5dbe305ab62f4eb5254daf244fac2050aa144fa60a58a0168dc45edfffc1 +fbfffffffcfdfff7fffcf9fffbfff8fffdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffcfffffdfdfffffcfffffcff +fcfcfef7fff8b7d3ad3e632d215e1033682234612615390b24431a2f4d2726451c224318 +1d281a192018151a14181a17191b18161b15151c14151f14181d161c20121e441d265423 +222b101d281a1a311d3832186f18117a131491181d9d1519a61816ab130eb61210c8181a +d81416a6311d89c23f7dbe3c5c9b33548b2e2f4312365021467f215b8c3067ad3369c830 +6bca2e67bd2868b62f7bbb4bfcfffafcfef1fffefdfbf8fffefffffcfffafdfef9fefbf6 +fffbfffffefffefffdfdfffcfefffffefffbf2fdece0f3d7a9d19f577b4f1e530f429926 +42aa213a97223b88283c83273a8329378027387e263b7d26397b243a7a24397b24377922 +3c7129366b253065212e611f2d601b326c183f86204f9e294eb0254db22851b52e55bb31 +57bc2e59bc2b5cbb2b5bb82954b83157bd2b5cc52a5ec92b61d0345ecb325cc12568c627 +a9ed80fdffeefdfff7fffdfffffffbf6faf9 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffbfffcfffefffffbfffefdfb +f5fff08aab7e295d15306e183b7f1c37731b32641f2b4f1f1a3115142515101b1317221c +191e171a1f191a1c19181a17171916151c14131f111422111c2b141e2c1520431b36682d +244413202e152034192d4e21664927881b14a011159b1514a91717af1412b61914c51515 +da1310af472281cf4571b433569b305d9f314368231b2b0e263d133c651f4a8022539321 +56a61f69ba3171c23748aa07cfe2b5fcfff8fffafffffbfffdfbfffbfdfcfffffbfffcff +fefff4e1ead9b6c5b08f9e8b6c7b684d644739602b31661e2a681d266b103e922347a72a +42a527439a27317b1a357926317520327621377824397b24377921357a21347b1f30791d +346d26306c223170213676203b7c203e851f4595264ba22d4ea7294da6264da8274eab27 +4eae284baf2949b02b46b02c4eab274ca62a50ab324cac3149ae2a56bd2e61c52f61c129 +60bb1e74c72de6ffc0fbfffffffafdfefff6 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefffafdfbfcfffffdf5ffee +6c915d2c62143b7c20458829407c243b702230591f2c4621192815161d1617181c1a191f +161813181a17191917171916151a14131e101827141e301a28441b253c1f214118356e2a +2a611d223d14293f1b2c57214670307c4325971c1499140fa61615ab1715ac1210c31717 +d01b10ae401d76bb3e67a22a54902c5a942457912d2c3f111d1a21203d0f3e6522476b2b +5d943769b43563b6285fb92699c882f0fff3f8fffffeffffc7d2c19aae8972885a51623e +36462b233819162d1016291316271417320f295c1942892d418f2c4aa32f48a72943a129 +4ca73249a22c40932730791f2f701c306f1e327120367323367323367524357624337422 +346f1f357521397d263e8527428826428825418c2740912a41912e44972f469a2b439a29 +439a2943992a41972a3e94293f99283f952647972848972a408f24408d234b94294d9228 +4d93304b9f168dd06fe8fae0fffbf2f4fffb +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffafffffdf9fff858774e +2e64183a7e1b478b28448529376f282f5c231f3d1716230f1d2019191a151b1c16191a12 +171916151513141412181a15181d161621111d2f192e42272c511b2a44211841152f6f25 +3c762929541e3354293b5623326c224f6f2e7f351aac13159c1210a91b1ab91015b11614 +ca1317b728205e852c548122527c3057862a48972a44662912140f1d1d1330441f2b5817 +3d6e1d51901e66b52870c23263ba1d66a72f5276392f47272e4f1a2a55101c47121c411f +1f32141e32161e32191e2c1d1d271e1f361a2a5a1c377e22499d2b409d283b9823419825 +469f293b9d2445a42e3f93243d7d29377723357020346d20346c21376f26376f28356d26 +3971183876203a7b273a7b293979253977223a78233a7a243f85253c842138851f378822 +3b8926388125387d243c7c25308021367e2a3575273879273e8122377d1b367821337128 +396727305e13448833b9e8c8f6ffeefcffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffdfef8fffcffa5c99d245617 +39662143781c4672272a53191e261b1d241c1d221b1a1f19161b17131512101211161817 +19181e333736394039151c15181f17182615233e1b244c1a2e492818380f2f5a242d601e +3368203c71293c6e293c6a2940622f38712c5062267d311aa01413ae1613a9160fa61414 +b5161ba61e22384b1d405d2554722c5a8b32498b2748842037452c15150d2321221c2f13 +2a4f194c831d62ad2e6acd346bc12a55942b1c430c2b4623314e1e2c4815293a1821271b +1e26171926141b2a171d251a1f211c1e2b1a224819377029388d253d9527419c27469d2a +4296274194283c942444a12e489a2c37851f3079203272242f6d24316d25337022316f1c +30701a33711e367121346c21346921346722336621336621346b27366e27357225367524 +387824387925357521306f1e2f691f2f6d243272282d6b1e2d651e3060242a5122254a1f +25441b20391923362249564cbdc9bff4fff3 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb6f96612b5c1a +3c64253c681d3f5e23223b111318111217101a1f191315121416133739386d6d6da6a6a6 +f6f5fafafcfba8afa80f160f1c24191f2e1b29442129511f27461c20451238662830641c +356b1d42782a3d6f2641702a4b84254b761d3c71213f5c24752d1ea60f14ab1016a0171e +a2130d9a3a106f9e346792295f82246895385b943347761681a064a8acad201c1b121816 +1a31153a5b224f82265196225ba22c43772525441b31482c28421d1f3a111b2e121d271c +1e26191724121827141822171b201a1a251719371328551e3576223f8a2b42982b419928 +378d1e398a233b8924388621429124408d25387d2032721e336d20346d20346d1e366f1e +336b22336b22326a213166203063202e611f2a5a1c28561827541928581a2b5d1e2e611f +2d611f2c601e2c5f1d2d601e315f1f2b5c1a2b601a3166222f601e2a5617274e19204319 +182c110f1e093b453aa2a8a4fbfffcfbfffb +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefefff8fff1406a2a2e6017 +385e213b5f2140522a29311a12141117191631333071716fcacacafcfcfcffffffffffff +fbfbfdfeffff5c5e5b10150e1f271c1f2e1927431d264c1b284d173760243d6c263c7123 +3d74213d72203d6d213b69204b822e4f86324a752e3c68293f61256d411c911e178c131c +941318995f16b8f653bff94f9ed44083ba3a68ad384f86214f842af4fff5e9e4ea4b454f +12161719251b22370c36502041701f36581c283c172f3f22243a14243f16243a161d2d13 +1d251a1724131726131723151c211b1b20191625101934132d541f3b702c357e25368824 +388a263a85283a7e273b7c28317a213379232e6e20316d25356c292f63252d5f242f6126 +325f262f5f232c5e1f2b5d1e2c5e1f305d222c5721274f1b26421924401722411824421c +24421e243f1c213c19213b18223d1c22401a1937111534121a3a151d3c131d36180d2213 +2a3129818680fffffdfffefffffefffcfafd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff8fbffc9e0c32b5a12316417 +345f18365d1c30471b2f3626848484ccccccfbfbfbfffffffffffffefefffffffffefcff +fefffddfe1de1719161f221b1a22151a2912213b162d4e21325a1e3e6b2a38671f3b7020 +3c711f396c1d3f6f23406e25476f28587a30537e2f517e2b638d2b7baa388e98378f5317 +7b2914af9936ccff52c3fc3eb7f842a3e23c7ec93b529426397b1a92b478fffdfffffbfa +9d97a33737411619101312171d360e30411f212b10232d1428381d293e1f2b402126391b +1e231c192416162413142012191e181b1d1a171c151b23161a28112a46202b5b212a6721 +30702434742636752637762531752036772335752137722230661b295c192c5c1e29561d +294d1f294f1e27521c28551a2c591e2f5a242d5320284c1e2d3e1e25381c1d2f17192a17 +1b291a1c281a1d281a1f271a1a2b182e3c2d606e616674674c5d4d4d5b4c404644868690 +fefefffffffffdfbfefffdfffffbfffffdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffcffff7da173275b11386b1e +3c701d3d6c1b2d511445553bfffdfffffefffffefffdfbfefefefefefefefffffffefefe +f8fff561665f11130e1a1d161c2415223218263e1a28441c2f561d335c2037662235671e +36691e4070263d6b23426f2a4f6d254d7628517329617b316c943375a92b90b935a8c449 +a19b3db3c245b5dc43afdf3ea3e637aee83b99db465c9a2b4589264d7f1ef3ffebfffefb +fffcfffdfeffb6b8b74a44521116191516181212101618130f160f121f161e2e23142417 +151a13161e13162214131f13161b151717171513141614151a1b150d180a13270e203d1e +2b50252d5c262d66212d6e1c306c262d661f2e681c376f2434672228591827541b244f1a +24431a26471c274b1b29511c2b541c2b531e284f1a24491626431726451b25431d223d1c +1f3a1b20371b21351c21331b1a320e2a39226f7a6cdde6d5f9ffedfcfff6fffefffffaff +fffefffffffffffefffffffdfffffdfffdfe +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff8fffa3f723034681d45752b +4a7e294e832b39671e4d6740fffefffefcfffffefffcfcfcfffffffefefefcfcfafffffd +c9dac7121d0f1a1f181a20161c27161d2f15223718223a18264b172e551e3a6327376423 +35641e3b6a243b68253663203c6e27466e2556762b5c7c335c7d2c718c2f839f3981a13c +91ac37adbe4ba5ba45a2c841aeeb45bdfc4d93d3415a9930549628437d0f91b16efcffff +fffefff9fdfcfbfffffbfcf7cac8d39390978f8d909999998587866a6e6d515a553d473f +3f413c3e433d3e453e444b44565b57747474918f92a49fa3a6a4a5a2a2a2787d79394039 +192517142d10204718285c1c2c5529244f21214d1a25511c29541f234a1b1f441922441f +28441e29451d2a491f2b4c1f2a4e1e2b501d2c531e2f561f2a5f192f6720336b24326925 +3165232e602129591f24511a284e1d1f3a171b2a1322301968785de8f6dcfcfff4fffaff +fefffffcfefdfefffdfefffbfcfef9fefffd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffdef1de2d6d1739701c3d6620 +3664194170223c6c204f6d3bfffdfffdfdfffffffffefefefffffdfcfefbfefffbfbfdf8 +465f4210210e1820151f251b23301e1e30161b2e1225381c254516315321335920355d1f +38622233601d406d2a35621f355d21466f2152842557842763812b758a2f7f983389a23d +8ba13c98a2428da43c98c03ca5dd3aa1e63e7ebd3b589035609a2c54922748791eeffdec +fffffbfefffffbfffffffff4fffffbfefffafffffbfafbf6fefdf8fffffafcfdf8fefffb +fdfffcfffffffefffffdfffefafefdfdfffefffffffffefffcfcfefffffffffffffffeff +dad8d97577722f3d2c10290c1a3212203a1727431b203f152140142a491f29451d264019 +203e1a213c1b233c1c263f1f26421c26471a2b531e335e26357326377826397b24397b23 +387a223777233370222d691f2c5f272d561e27461a223c1f193c12395f22dffbcbf8fff8 +fffffffefefefefffffefffdfcfefbfafcf9 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffaec6ae29710e41781b476c27 +375f20345d1b3661194c6732fffffffffffffdfdfdfffffffbfdfafefffbfcfef9929790 +12310f1d301a1924161c241924311f1d2f1523351b28361f2946182d4a1a345721355b1e +3d652635621d3d6a253867213e54303e5b214e702453792e5680346c933887a83797b539 +98b0408e9f377ba1309ac844a9d6477ebb3065952f4e722a52852657992d3d751c8ba66f +fffefafffefffefefffffef9fffffbfbfdfcfefffffefdfffffdfffffcfefffdfffefbff +fffffdfffffffffdfffefdfffefffffcfffdfefffdfcfefbfefffffcfffdfcfef9fffffd +fffcfffffbfffffcffb4b4b65660572e3a2e212f1e1b2e1a152812172b12172911192b13 +112e0f132d10172e141c30171a331518380f1b46112353192a631e2f6c1f3676223a7b21 +38791f36741f347123356f25326f2a306610366217305a2a336624447e175d9034e1ffd9 +fffefffffefffdfdfffdfdfffefffffefefe +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffdfffbfffdfffffbfffcfffcfffffcfffffffdfefffeff76aa62397c1b408727478824 +4d8427417221345e14456131fffdfffefef6f8fff9dbe4df7f797dfffbffdbeed81e5b0d +25481e1b35101a2b191d291f2434171d321321351c263b1c2b4b1c29481c325324345721 +385f1e3d66203d6725315a1e3f6721385d29375e27406728476e2b6187327ea53298c137 +98b73f84ab3885b53b87ba37709c2d577630435e274865234d8321588f31568f283f6e12 +bfdaa7fbfffffefafffffffafafffbfffffdfffdfffffcfffffefffbfffafcfffffdfeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffefefef7f7f7e7e7e7d0d0d0b6b6b69d9d9d8d8d8d +747e736771665965594f5b4f495549455346414f423b493c1c3c17163b0f2350192b5f1d +316b1f397626377522357320326f21326d1d3d78283b76224380234a8b25498f1f62ab36 +fffff3fffbfffffdfffdfff9fdfff9fffdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffdfffbfffdfffffdfffdfffbfffffefffffffefffeffff508e3b3d841e468c2a508e29 +4f87244e842c3f6b1c5b7649fffefffefffdb4beb31420141419153641334f75442a6b19 +24471d213b161a2b191a261a2434171c311023371e273b1f30502129481c2e4f2031541e +396021365f1b37611f345e1f3c5f1b3f621e385b25385a283e602446652956742c7a9a35 +82a330769629708f32556e2c384a20374c21496a2378a5407fb3345e9339528e2c4b8521 +426d1ecee5bbfcfffffdfcfffffefbfdfafffffefffffffbfefffbfafbfffefdfffffffb +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffdfdfd +fcfffbfbfffafbfffafcfffbfbfffbfbfffbfbfffbfbfffbdee5dda4b1a05a6e532c4c23 +1d48131f531329651d34722737782632732131701f39792539772237731b407d20468324 +aedaa7fbfff6fffcfff8fffdf8fffdfffcff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefffcfffdfffffdfffcfefcfffffffffffffefff5fff43c88263f8b1f428524518b27 +4f8a20508c2c3867177f9870fffefff8fcff535d521b2817223724254c1d3471212f751f +2c5024213d171728151e2b1a2c3c1f1e331221351a2b3e222c4c1d2b4b1c30522031541e +3d6326315a18355f1d3a6425344f243a542d3d5a2a3e5d243957253550272d461e2d4718 +2b4021263919374b18657a2d728a2c84a635aee448baff37b2eb4479b23f4a8b274f9228 +3e7718477024bfd9acf6fff7fffbfffffafefffffdfefffbfefffafffffbfffdfefffdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffff +fefcfdfffdfefffefffffefffffffffefefefffffffefefefffcfffffcfffefefcf6fff5 +b5c8b45875562a50271944161e52102f6623346b283165252a5a1e29541c2b501d1e3e0d +6da86eebfae7fffafef8fffff8fffffffafe +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefffcfffdfffefffffdfefcfffdfffefffffeffdff3d832881d4090214a8a2c538b28 +4c8a1d478a2330641296ae8afffdfffcffff7d877f1523122345203474263c8826377b24 +2e5423203e181e321922311a2c3f1f223814213617273a1e2a4a1b3151203557242f521c +3a60252c5415376121436d2d3a5729355226466623557b244e732344682046681e4f702b +52702a5a79296a8c2d7fa133a0c63fbfee48bdf740c1ff49bbf93c8ccc384f8d284b8d23 +4782283f711c4d7f1091bc74f8fffbfefff8fffefbfffbfcfefdfbfffff8fffefcfffcff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe +fffdfffffdfffffdfffffdfffffefffffefffffefffffefffefffdfdfdfdfffefffffeff +fafafcfcfffdecf6ed99a5994d614520371a173213153011182f15132110192018626461 +90a892ecf2eefffefffefefcfefefcfffeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefffefffbfffdfffffefffcfffbfffdffffffffbbdcb12f851a4292234a8b2f4b8423 +49881d4a8c283b70206f8966fffefffcfffbf2fcf42637252b5b213984273989282f711a +2b531e23431a2c4424233618253b17274018253e172034182a4a1933532233562030531d +3b61282c5418355f1f3e68264367273c611b456a24577e2f618a2e5f8a3065913076a62e +88b13b84ac2f92b63c8dab39b1cf4bddff5ec3f642c3fd53abef3a7fbd384d832d508626 +467a28467b2b62a61f4b931563904beaffe0fffffdfffbfffffdfffbfffffbfcfefffffd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffefefefdfdfdf8fff9fcfffbfdfdfdfffaff +fffbfffffdfffffefffffffdfffefdf4f5f0aaafa87279717a817aa5a7a6dcd7ddfff9ff +fffcfffffefffffffffffefbfffefbffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefffffffffbfffdfffffffffcfff8fffcfffefffd90bb8333801a449222488e2b54932b +58972c50922e4177232443196c7572f8fff3c5d3c4304d2e326a213c872837812833731d +315f2123481c2f49222740182841192f4a1d2d481d1e36162e4e1d2e4e1c2a4d1732551f +3a5f292d541b355f1f39641f3d6823436c2a51783550792d4b7425517a2b648f366f9e34 +76a12b91b83b9dba3cacbe46c2d150cde64cc1ed42b9f14894cf4356873845722d4d7920 +527d2b4478265196296cc132559f2251832ed7edc9fbfdfcfffefffbfcfffcfffbfafdf2 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffdfdfdfdfdfdfefefeffffffffffffffffffffffffffffff +fdfffcfefffdfefffdfefffdfefffdfffffdfffffdfffffdfffffffffffffffefffffeff +fffffdfffffbfffff8fcfff4fffbfdfffefffefefcfafcf9fcfffdfcfffdfcfefdffffff +fffffffcfcfcfffffdfffffbfffffbfffffd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fdfefffffffbfffbfffffffffafff5fffcfffbfffc6a9d5a3c7e1c499720489525549925 +5a9a2a52902b50872c2c52191127103f523c26412026561c3b7f2a418a30357b23387a23 +356825254d1b2a491d304c1c324d22304e1c32501e223c1930501f30511c294c1432551d +3156222c531c3963233c67203c671f365e20487125567e25577c2e54792c5b832b5f872f +72983386ae2a95b4329db047a2b542b8da3db2e24086be39558026385d273b651d4f7923 +4d792444782344862560b12869b82954a01958972fccf1bef5fff7fffefffffefcfefffd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffefefefefefefefefefefefeffffffffffff +fcfefdfefffffdfffefcfefdfefefefefefefefefefffffffffcfffffdfffffefffffffd +fefffbfafff9f9fef8fefffbfefefcfffffffffffffefffffcfefdfcfefbfcfffbfafff8 +fcfffdfefffafffffbfefffdfefffdfffffb +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fbfffffffffbfff9fffffffffafff5fffbfffbfffc538b4047801f559f2653a32a539d22 +5d9e2a55922b4b812137601c25451c2943282147182f6c1c357f262a701842842a357b23 +2c61192852202c4e1c34521e324f212b4c17355621233e1b2949183556213558203e6129 +2f54202d541d3a642536611a396226375f23385b233c5b1f4c6b284c6a2e4c6c2b587b27 +71913c83a93c7da5327aa0318fb8389ccc3a75a83143772f334e19486924618c33507e26 +497827487d254f8e2371ba376eb72872cb3360bc29569a2bd1e9b9fffcfefffbfffafeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffefffffefffffdfffffefffffefffffffdfdfffafbfffa +fbfffcfefffffffdfffffafffefffffcfdfffffefffffdfffffdfffffefffffdfefffffd +fffdfffffffffefffdfefffffefffffefffd +f9fffdfffffffffdfffffcfffffdfffffffffbfffefcfffffffefffefcfffffefffffeff +fefcfffffefffffefffffefffbfffbfafff9fefffdfffffffffdfffffefffffdfffffeff +fff9fffdfffef9fffafffbfafcfffafdfcfffefffb3b881e46932359a42e5ba92260ad2b +59a1315191235083243b61242c56243056252b5e1c377d24357e223776273d7c2d337e1f +32581f2f4e2232501c34581a30581c2f571b355621273c1d2f4c1c2d4d1c305521315821 +335a212f551c385b23385b233a5d273b5c273654202f4b1a354f2237512436511e46612a +486e19557627566f2e5a712b5471213b57241836103d621f88ba358ec23285b53b5a822a +466f204d82284b921c71c82c6ac2306bc5286ac32d65ba275ca424c7efbaf6fdfffffbff +fefff8fefffffcfef9fffffdfffffbfffef9fffefffcfffdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffffffffffffffffdfdfdfefffdfdfffcfefffdfcfcfcfefefefffffffffffffcfcfc +fffffffffffffffffffffffffffdfffffdfffffefffffdfffffefffefcfffffefffefcfd +fffcfffefffffbfffcfffefcfbfdf8feffffcfe6c9368a184c9b2854a22b5cac2963b32e +5da92f5ba029568d28345c1d2b541c29511d2f63212c751c2e791a3c7d29357423387e25 +3457212b4a202c4d1835591b375f23375f21375821203814324f2132522130521f2f541e +33592030561d355820375a203a5d2533562033511f2b461d28401e2a4124233b1b1e3813 +1b301f2136231d341820371b1e341d415c2584aa33bbe845b3e5449ed03d81ac385f8629 +4f7925497c2f478b2672c7346ecc2e6ec72f77cb3870c63166b92958952ecde6befffeff +fffefff8f9f3fffffdfffefffffefcfffdfefdfdfdfefffdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffdfefdfdfbfefffbfcfffbfcfffbfcfefbfffffdfffffdfefffdfdfffcfefffdfefffd +fcfefbfefffdfcfefbfefffdfffefffffefffffdfffffffffffffdfefffdfefffbfdfffa +fffffff9fdfcfffefffffffffffeffc4c9c384b7753c981c4ea22952a32b5cad2d62b42c +64b52c6ab32e58962934631b2a5617325e2339702c36812636841e3c83253574232a681d +2848192140172a4a18365d1c3b63253c64254165272f4c1e284316294616264615315320 +365b2530561d2b511832551b3355232d4f1c395a23415f293f5c2645632751702c5d7d32 +65812c6a883071913074952a89ab30b2d344c9e948c4e43bb9e64190ba30759c3264882e +4c741e477b28579c316ec72d6bcd2a73cb3777ca3470c72b6cca2e61b51f5a8e29efffe9 +fefafffffff6fffefffcfafffffffffffefffffffafefefcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffefffffffdfefffdfdfdfffefcfffffdfffffefffcfdf8fdfffefefffffafcfbfeffff +fafcfbfefffffefffffefffffdfffcfefffdf9fef8fcfffbfcfffbfbfffafafff9fefffb +f3f7f6868887fff9fffcfcfec4bfc613200f3c882648a7274da32854a82f59ab2f5baf25 +6bc12c71c02f5598253e752241702831651d3c792b408c2a3f9122449129347324285e22 +29441b27431d3556214067263c642637601e3a621c2e5119314d1c3754242c4919264614 +2e501d3b5e28365c232c52172f521a2f531641642253742d5a7a2f5c7e285f83216a9126 +738e2f7c973696b042a4ba3bb5c642c3d04ccadc4cd0e646b7dc3f94ba337fa23c688b3b +456c1d467c1c65ad306cc52b70ce3072ca3672c92d71cd2e69ca2f72cf2963ae1e79ad58 +fefffbfcfcfafcf9fffffefffefdfffefffffdfef6fffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fefffdfdfffcfefffffffcfffffafffff9fffffeff7c837bc9c9cbfefeffffffffffffff +ffffffaeaeb0fcfcfefffffffdfffefdfffc969b97535852fdfffcfffffffffdfffff8ff +747e761116108d888efcfffdb8b8ba27431d449d2949a5284ca72654aa2f55a92f57ae23 +6fc92c72c632519a24498726619a393f7c1d33751b3882213e9024408f26397b24336526 +2c442028421f31541e37601c355d1e365f1b406a203b64222b4c153758213d5e293c5c2a +31511f2e511b3659213b612837562c385827436229486628506f2961832f6c9030769d32 +89ac2c8da837abbb3ebbbd42c0b355ccc157e4ed54e3f94ebee2449cbd38779a325f8232 +4a73274d832562aa2c68c02e73ca2e6ec9306bca326dce336dcc3276d23374cb2f4ea113 +bfd89ff9fffffefdfffffffdfefdfffdfffcfcfcfafffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fafffaeaf6eaf8fff6f9fff8fffefffffdff8c918d323e325c5c5cfefefeffffffffffff +e0e0e02626269e9e9efdfdfdfffefffcfcfe3c3e3d0f110e767875dfdde0cfc8cfaea4ad +3245321d2c191926142937281d2e1c31642147a5294fab2f52ad2c50a92b56aa305bb128 +6ec72d6ec334529d264e942466ad2d61a82e438b1f3a7f223a852637882240852834671c +233616243e1b34571f3b641e3b64223a631d3f6b1e3b69213a61203b6223395c2230511c +2d4d1b30501e375a2431541c2f4b23324f2345612e4b672d476424506f235f82286d912f +84a532a5be48a9b23dc6b953d4ba59d7c348f4f462c9d849b2d24186a52d6a8d275d812a +4e762d4e832761a9296bc12872c82967c2296dcc3e6bca3876d13477ce3274cf346ecf2a +6a9f33ebffecfbfffffcfbf7fffefffcfefbfffefffffdfeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +e9f0e9677b628dae8183a475748c6a76836f5e695b4b594a474c46747973858a84929791 +6b706a2d322c2f342e777c76797b78656c642632242536230f220c172a1417281512210e +1f3d1b2a461d21461323411f284f223b892451b0304aa62a52ad2c51aa2a59ad315cb22b +69c12d64ba35519e2a559f2460ae2665b62969b433529629428a2641942c40872b2e6218 +25361629411d365c1f3c661e3d66243b641e3f6b1c3d6d23416f243b661f355d1e2d5018 +3455202d4d1b34572132551f2c49132d490f3f5b1e506a2d516b2c506b2654732563852f +819b3a91ac2ba7b23cb3a84fccb356d5be54c3bb4cbac447a3c24185a72f80a639638932 +406925477e2164ad276ec42d6ec82b6fca2f6fcb386fc93368c22475ce3472cc366dcd2d +59a71d92c278f4fff1fffffdfffffafefefffffefffffffbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fcfffb9ab59285b87381bc6a7ead69829d7273856d6f7d6c647064515d514753473f4b3f +3e4a3e404c403d493d2a362a23342222391f2c4a282d54272753202d5c2625541e305f29 +335a2b2f581e30681d37612f2f6a263ea0254aab284bab2d4faa2954ad2b5aae325ab02b +63ba2b5db2334e9d2a5ea92864b53461b62371bf2b72b532559e2b42952941893325571a +2736172a421e355b1e3b671c416a28416a24406f1f3d70233e7220437327426c2a2e5419 +3859242f4f1d325220284b152f4725324b24374e203d54204c6428546f285b7c25749637 +88a032a6c045b0c248b8b74bc5b34dc8b64acac44ad3db51a2c24396bc318ab3314f7623 +335a254e852a66af2c67b73a6bc8326fc82e74ca2b71c9296cc72a69c62f6fc93468c129 +64c12b4e8d1adff2d6fffefffffff8fefcfffefefffcfdf5ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fcfefdfcfffbe3eee0acbea698b28f90b1848db47f82ab717f9f767292696a8a61608057 +5a7a5158794e51724550714243693a3d67353a6730396d2d37732b377828367c26378027 +387d24337022397629378923367821469f274aa62752aa2f4baa2c53ac2a5caf295fb129 +62b52f53aa2750a72457ae2b64b12767b73263b93265be3065ba275daa2652902d265b13 +1c281a2b3b213751243b5e1e446e263b661e416c24416d204474284172234271233a651d +2f5718365921375725284515293c202e441d38501e39511d3f57234c66295d7a28749230 +97a939a2b935c3d54bc6c752cab758d0b854dbcc59c9c547a3be399cc541638c26344b1f +455c30497f1d58a52362b7286abe326dc53170cb3070ce306fcd2f6dcb2d70cc2d74d02d +79d03460bb205b8f3cfefffffffefffdfcfffffff6fffcffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffefffefefffcfffdf9fffaf3fff2c2d5c19cb49a95ae9192b68a8fb38786ac7d7aa472 +73a0696698595b904c59914a4e833f4a823b4480364180313e822d3a8329398425398724 +3984253b802740842d348c1e357e2249a72d4fae2e4aa5264cab2d53ac2a5caf295fb129 +5fb53054ab2852a9265bb12c66b52865b72f61b42e63ba2f66bb2c66b42c6ab13954962c +3251182542122c4f174169204976253d6b2243732940721d417522427322477827447229 +365f1d2e541931521d2f4f1d2e4121334922395121425b2449662654722a64812d6c8b2e +84a43595b435bad047bfc142c3b54ac4b250b4b148a5b23cadd13980a836284519374d26 +46651f52872f5ca2325ba52a60b22a64b92a68c1296ec92e6fcc336cc9306fca2f74d031 +78d7356ccb2f4e9120b9ceaffffffdfffffdfcfdf8feffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffdfffef9fdfffefffefefefcfefdfcfffff8fefcdfe5e3a4bb9e99b29290ae888bb084 +80ad7677ab6b70a96262a0535d9c4b5596424f933c4b9138448f303e8c293c8d2640912a +368822418f2a408c283c962436892146a82f4aab2a4fac2a4cab2d53ac2a5ab02b5caf29 +5db32e54ab2854ab285db32e64b72b62b42b5eb22963b72e65b72e61b4286fc1316fbe2d +5e98283e721d34641a4879204c7f224478234a812d4a86264c83264a8126487e28437627 +3c6a22396220385b2133541d31461d2d421b384e274058284d6a2763832e6c8f2b779c32 +92b7338ca736a3ab44b9b047bca547ac994aa0a144aabf469fc84439561e243b1f4b632f +466a224b81294d8e2653922756a62364b62d6dc22f69c22c68c22c6dc73172cc3675d035 +6fd12e6acc2b62b7267aa85dfbfff9fffffafcfffffbfff9ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffffbfffffbfffffbfefdfbfffffdfffefffffefffefcfdfefffaecf2e8bbc6b898a996 +88a1847999727096676e96646397555f9450558f454c893b478834458b333f882c358021 +3a8c283d8b26418e263e96253f9c2a44aa2d49ae2c4baa284baa2c50ab2a59af2a59af2a +59b02d50a92755ac295db32e5db32e5eb2295eb12564b62d66b8305eb2266cc22b73ce2b +73c63067ae344d8b2a4c8526518a23518f24539529579d2d529025528f284c8828457d22 +4175223f6d223c6322375a20334b1b31461f2b3e20354926425a26506f216d90287fa62f +85ac2d91af3d96a53ea1a1419b9138a19e41a9ba48a1c339415e261b2e0e4f622b4a6321 +39601d488122508f245d982a5aa4276bb93270c33369bf2a64be286bc52f70cb326fca2f +6ccd2e6fce2a6fcf2d569925f6ffeefffefdfcfffffafff6ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fcfefbfffffdfffffdfefefcfffffdfefdfbfffdfcfffefdfffdfffffdfffffefffefefe +e0e5dfbbc3b898a5947885735f785a526d4c49674143683c3c673237692c386f2c3c7530 +30752236772336781e3c88243ea0274cb23349ae2c47a6244baa2c50ab2a58af2c57ae2b +55ae2c4faa2954ad2b5bb12c5cb0345cb22b5db22362b52965b72f5fb22c66bf2f70cb32 +6cc82775ca395ea73152932d5c9c2e65ac2a63af295ead2e5ea428599e29529627509427 +528f284a7f253f6b20385f20344b1d283e17283b1d26351e2b3e22394f214c672470903b +97c942a8da45a5d23bb0d642bce040c0e64587ac3a34552017251850601f566426435c22 +426d1e4b81294e8821548f235ca12a62aa2a67b6296bbf296fc8306fca316dcb2f6dcb2d +72cf3872cd2865c52353a215b9d0a6fdf8fefffefffffffdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fefffffcfdfffefffffffefffefefffefefffffffffdfdfdfdfcfafffefffffffffefeff +fffffffffffffbfdfafefffde4e6e5bdc2be959c9475817353665037503326442221411c +224d182c572227571b2e661d45a52a4cb12f42a5244fad314cab2d50ab2a58af2c55ae2c +53ae2d4faa2955ae2c5bb12c5cb0365bb02e5db1275db12561b42e5fb22e62b83168bf34 +65c22b6ec7315eae2b54992e5fa5336bb82a6cc02a63b72b69b72f65b5305fae2e5daa2a +60a82b5a982b487a2536601e364f273248222438152230171a2715121f0e1e2d1a304228 +5d7e2d6f942b7fa72c80a82d72952f57722b263d1314251246572363702a47551a425c2d +406724416c1d4372214b812b5594295a9f2862ae2769bb2970c62f71cc316fcd2f70ce2f +71c93571c9296ac52a63b52368904afefffffffdfffffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fcfafffffefffefdfffaf9fefffffffefffffefffffdfefffefffbfdfffcfefffdfdfffe +fbfcfefffffffffffffefefefffefffffefffffffffdfffefbfffaf0f7efced6cba3ada2 +7a89725c6b58425a402f532545a0274dae294aab2847a52d4cab2d4faa2955ae2c53ac2a +50ac2d4eaa2b56af2d5ab02b59ae2d59ae2c5bb12c58ae295cb22d5fb22e62b52f66b830 +67bb2f68bb2b5aaa23509b245da92f62b3286bc12a69c12d69bf2a6ec6346ec63467bc29 +64b3245ea2274d84273b6823304b202d461f3a4b293c492b3843252e381f1722110d190d +1d26111920191a201e121912121818191c21262b174c531f5f75234e5a284a5d25375523 +2140162d460f3d5a2247712f4c8729589a2e62aa2d64b52a68bd2a6cc6306dcb2f6dcb2d +6fca2d75ce3675cb3464b7294a8622eafce6fffcfffffffdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +fffefbfffbf8fffefbfffffdfdfdfbfcfefdfefffffefffffffdfefffdfefffefffffdff +fffefffffffffdfdfffffffffefffdfdfdfbfffffffffffffffdfefffdfefffefffffcff +fffdfafffffff9fffdd4ebcf49a22a4bab2549aa274da7354baa2c4da82753ac2a51ac2b +4eaa2b4da92a56af2d59af2a5cb02758ae2958ae2f52a82955aa2958ab255eaf2663b127 +64b42d67b82f5fad2656a32363b2335fb12b69c12f72cd3471cc316fca316ecc3071cd2e +70c52a64ad285089283c6e2534521e2b441c304023394422424e204d5a254752272f3a18 +1b2817212a172c311a363d1e4952275762285d69275f692a4d6029495a2441592533561c +27411a2c352233441a395d1d417824498724579c2763b02c6abf3069c33069c62f6dcb2f +71d02a6eca3777cc3165b72f3c8710a6c29afffcfffcfff8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fcfffffdfffefffefff7fff349a42f4faf2954ad2d46a9284ba72a4da52a51a72c51aa2c +4faa2b4ca72652a7285aab2b56ab2a55ac2a54ab2955a72b55a02a569f295aa6285daf29 +61b12c63b63057b02e4ea72965bb3671c53262b42169bc306ed1266dca336cc33475cb32 +6cc63161b9274d8d2d4774232f4f2038502c32421d2d3b18323f23394a1e44561a4a5922 +445d26485c1f586321636325615c25605c2c5d5c2c55592647591d4e6328375019395522 +3b5828243f122640132e481b39641d4e8027609e2f62aa2a60b32769c12f71cc3170cc2d +6ece2c6ccb2f7acf3e68b7263d8306a0bf86fffffdfdfffcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefffffefefefffefff3ffef45a42c4eae2854ad2d49aa294ca62a4ca42950a62b50a82d +4faa2b4ca72852a72858a82b55a72954a92a53a72b52a12a4f99284d9525519c2554a525 +5cac295bb12c54ad2b4ea92a5fb63171c6336dc12d61b4266fc52c76cb3a68bc306bc42a +68c12960b32554932a49792339561e33481f33411d343d20303926303b1d3441153f4a20 +3e4a244d542b51522a544e2a554c2d504b2b4f512a4a52234e632b394c1e1d2c0d1a2713 +22311c2a3f1e3852223b5a1f396220437422508d255aa12760b02b6cc03470ca346fca2f +6fcd2f73d23668bd2a62b4225da52793b579fdfcfafefffdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefffffefcfffffdecffe742a6284eb02958ae3150ad2b4da72c4da2294da3284fa52a +4da72b4ca62a50a42a55a52c53a32a51a1284e9f274e9b294d942a4b8f284a9226499624 +56a2265aad2b52ad2a4eaa2b55af2967bf2d72c83367bc2d6cb83276c92f76cf296ac627 +71ca3269b6285d9d224a811c405f1c30461836421c303a182a311f2e3820313b18394021 +40451d41411b4b47244b44274944264545214048194b5a213647251f2b15141912141416 +181d19273420304a1d3153173b6126406e254d8426589c2b5fae2e66ba306ac2306ac42e +6ec72f6ecb3260b82474c83555a12383a66cfffffdffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefdfffefcfefffde5fee040a9284cb02958ae3354ad2d50a82e4ea32a4ca0274ca128 +4ba3294aa2284da12851a029529c294b98244996244b92284b8d2b46862845882748902c +4e972455a72b4faa2b4ca82b52ad2a5db4256abf2c71c63766b72a6bbd2b78d3306ccd30 +6fca316eb82d5793224c8423334f1e293c2037442a353e1f2a331e29321f29331b2f3324 +34371c3c3c243a38213b39223c3a234245284953303c48201c231c151a16161817181818 +1a1d161924131b2e1028411a2c4f19335c1a3d711c488a1e539f215eb22868c02e6cc630 +6fc4336fca3170c63169be2f4d982174975dfffffbfffdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffefbfffefffefffddffad73fab244aaf2b56a93351aa2a55ab3051a52b50a1294da128 +49a12749a1294c9f29509f2a5098284b9524499324498d26427e2439731f3b7924478730 +498d284b9a2748a02646a12851ac2d5ab2285db4256dc13570cf2b5daf2f66bc3571d13c +70cf376ab32d4d843047812c2a491d1f361c35452144551f44552138491d32411a323c21 +2f39212a321a343a20373e1f4348284b523130391a161f041a151b181619141611151d12 +1823131522101a271326331f304e1a3d6124497a2954932b60aa2f68bb2f67bf2b62bb23 +6abe3268c32a6ec22f5cac2740881a6c8c5afffefafffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffafffefffeffffdbf5d040aa2248ab2a50a4324ba62756aa2e56a82c53a42b4fa329 +4aa22849a1294c9f2951a02b5199294b9524499123488a26417922356a1c32681d377023 +417f29448c26449b28429c2a49a22c56ad2a5db12865b93070d43460af20509a0f75d035 +68c63470c02d54932a4e92253a5e141d32131b28171e2a1227331b303f204151204b5a1f +47591d4a5b24414f1e3d4a1f333c1d1e221314151713131f191313181713141913172118 +1927181b291823301c232f1b243e0f32531c416c2549852559a02868b92e6fc5306ec72f +67b93061ba226dbc2d69b038317111617c4ffffefbffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffafffefffeffffd9f1cd42a92248ab2d4ca23349a52853a82955a72957a72c52a62c +4ba32949a1274c9f2952a12c529c294e98254a92224a8b27477d293d6c2433621e2a5d18 +356d243d82273f92283f962b4199294ba1265aad2961b22f64c1347dbe3091c25772bf23 +68c43364bb1e70bd315caa22324b24131f1f1b2026181b1010160c121615171c181b1b19 +1f231421241b1c211b121710181b121b1e1715151518171d151610171813181a171a1f1b +1822191b291822341c2135192137102c491b396123457d26559a2660b02969be2d6ec632 +67bb3268be2775bf365c9b3039701f647a54fffcf9fefffdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fdfff9fefffffffeffd9efcb45ab2449ab304da33648a62a4ea32254a62857a72a55a72b +4ea42949a1274c9f2951a02b549e2b539e284f97274d8b284a7e2b44722a3966252f5d1c +295d1b3779223586203c932a43992e44972152a3235aab2b5ab126c5f190f4fff2a8e75a +5fba1d6ec83273c43b62b62c475f230f1a0c1b1b1d1d1d13191a151a191e1715181b1716 +1f1b121c181718151c16151b1414161415101617111514101016141216151717151a1b16 +1e2118192614172e141e3b1c2b3e1e2b451e2f561f3f74245195285aaa2760b42865bc2d +65b93064ba2363a924457f1b31631a7e9171fffefbfbfffaffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefffafefffdfffbffceecc841b2264faa334ea53047a0284fa0274da52a4da72c51a62d +53a12a569f2a4d9c254ba3284c9d2454a0245395344f9123487c29365d1e3a55281d3714 +20362130632034801e3e8c2740912a3d942c43962c549e255aa526feffebfffafff7ff87 +6bc8216bc3315aa4316bbd2d4f86291a1f191b151710160c14181b1517161317161b1714 +1616161616163e3e3ebfbfbf7f7f7f2b2b2b151515151515151316151515121411141912 +1820151a25171c27171f2a1a2734162c401d345121446f2759932d5fa92c60b42b63bb31 +6acb2672c734549724497828304c1ba0ac94fdfff5fffffbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefffafefffdfffaffcbebc242b12752ad3450a7324aa32b4ca0274ba3294aa4294ea229 +539e28569f2a4f9f264da52a53a72d54a02451942b5190253e72202b51181e440b335c24 +2c60201c420f335d2b377a2a388a1e3d88293f832c418e1e499622c1ef95fffff8fdfcaa +6dc82d66c1286dc92668bc28508d252a381e1513141419131415171b1c1e151714181413 +1818186f6f6ffffffffdfdfdfffffffdfdfdadadad8080805b5b5d424242212121141613 +161b151a22171b26181b28171e2c1520321a213a1a274e193b711d51942163b12a6ec131 +6dbd364e951d457e1f3a631f1f3810cad5c4fefffbfffdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffbfefffdfff9ffc3e9b843af2855ae3653a8334da42f4a9d2948a02848a0284e9f27 +559e295aa32d53a42b50aa2e52aa2f57a3255c9f2c4b88203c6d1e1c40143d6c2841822e +439229274d1c122217274c213b7c223b7b243c782e3678203c7c2564ab31f2ffcddbd299 +6bb92f6fc5306dcc3067b231549f2045652610151116151a1a181915151720221f767573 +e1e1e1fcfcfcfffffffffffffffffffcfcfcfffffffefefefefffffefefffdfbfe7f7d80 +1414141419131d271c1824161825131c2e16243c1830511a426e1f538a2557962454951d +548b2e3f7320305b162d4f1d32492cf7fff6fefffffffdffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdfefffdfffbffb8e5ac46ad2a55ae3653a8334ea32e489a2b449826439a254d9e26 +58a12b5ca52f56a82c50ac2d51a92e57a3255fa328508d25406e237a977b467a3232851b +398b1d3d74300e2014131716264013386e23326e283263223a681d457a1e778959817d5a +66aa2f75c73e62b62c69ac2b6ec22f578b2749574668656e757170a2a0a3fdfef9fffdfe +fffffffffffffcfcfcfffffffefefefefefefffffffffffffafcfbfffffffefcfffffdff +2c2a2f101211111811172317191f1b1822191b29182135192b451e335226315223254919 +2846122f4c1c2d4a1e2c462351634df9fffafffefffff9ffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffefffdfffeffa9e19a49ac2d55af3454a7334fa2304b982e4094253f96234b9c26 +58a32c5ca62d55a72b50ab2c51aa2c5da8295ea5235598275b863fedfff35e8a4d257b0e +39832241872f1a3c171f15201d181420441822551a2c531a2a4e1e32471e20391b3b5621 +72ba306cc43270c52c6db52f6fca2f4d9215bed8b1fcfbfffffefffffefffffffdfefefe +fdfdfdfffffffffffffdfdfdfffffffefefefffffffdfdfdfefffffcfcfcfffeffefedf2 +1a181d141615151c151620171d2015181e14171c16141a18101916141f191b27191a2916 +1d2b1120301524341a1a29128a9786fbfffafdfdfdfffeffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefefefefffdfffffd99d88752ae3258b03655a8344ea0314f9533429128419827499e27 +56a62b5ba72b58a82b54aa2b53a72b5ea92866af2c529c217ea765fbffffc0dab5236c12 +327b213e872b29561f1819141e1317202e1f294b262f551a153a182635144574264e8c2b +62b7286ece3663bb2761b6275cb71e62b32a86ad6cfefffbfffefff8faf9fffffdfefefe +fffffffffffffafafafffffffefefefffffffcfcfcfffffffefefefffffffbfdfa989a97 +111310131814171c18191e1a1a1d12191d0f1c20121c1f14171a111619101b1f111f2410 +262f1e232c1b263121262e1ff7fff4fcfffbfefefcfbfbfbffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefefffefffdfefffa88cd7456af3759b13758a8354d9d2e498a2c408d27439b2b47a028 +53a72b59a82b5aa92a56a82a58a82d5da62365b23052a41e9bc384fef7fffcfff8417535 +30791f35802133672715220e1a17121c231b1b32183b57243a6629426a23659a3050932c +5dae3665bb3262b82f65be266abf3067be3356892dfcfff3fdfefffcfffbfffffdfdfdff +fffffffefefefffffffffffffafafafffffffffffffefefefffdfefffffdf8fdf6444e43 +0f190e10170f141915191b1a1a1f23181e1c181e14191f15181d171a1c191d1f1c1f211c +1722121c2719151b118e918afefffbfefefcfffffffeffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffdfffcfcfdf87cc56957ae3958b03557a73449992a3f7b213b8522439b2b43a127 +4ea72956a6295ba72955a42559a52b66ad295ead2e52a61ab7dfa1fff9fffff9ff84ab7e +296f163c8d27316d271d2f171416091726111e35192d3d19396122356d123a641a578f2c +65b12a66ae2869ba2d61b13661b32b63bb33487f17dae4cbfbfffffbfffafefefefffeff +fefefefffffffcfcfcfffffffffffffffffffdfdfdfffffffffefffbfcf7ebf3e6222f1e +1b2918101a0f1517141a1a1a152211152210162111151f16171d1d171d1d161d16171d0f +1523121b2618292e27fffffdfffdfffdfdfffffffffdfffeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdffffffe9ffe468be4f5eae3f58af3a59a2374e93263f701f3e712e43a22e489f2c +48a72558a62c5ea52b53a32a5aaa3156a8226ab53457a920c8e9b0fefffbfffcfdd6e4d7 +26621a3484234090212a531b151a161c1a1b1a1e1d24301a2b451538611f4d882a519528 +498b274f8d285e9e2e5598275cb42c66b92b488715c7e7b8fbfffffff9fffffdfffeffff +fffffffdfdfdfffffffffffffefefefffffffefefefffffffcfefdfffffb9ab990174b0d +24441f202819181f17161a1d181d17192018141e15151f16181f18161b151518111f2219 +1d241c1217118c8e8bfffffffdfcfffefffffcfffffafefdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffdfeffffffd3f1cd61b8475aad3b54ab36559e354d90264574262e5a1d48a231459c27 +47a62653a12957a12852a32a57a52d5bab2662ae2a5db125cdf0b6fcfefbfffbfff7fffa +5385481f680e3a8721315f21182416171c161d271c2434193c58274064243c692635681d +4376174b8121488025508e296ab63868af2f437917b3cca2fefffbfffefbfffffafdfeff +fdfdfdfcfcfcfffffffffffffefefefffffffefefefffffffffbfffcfdf869945e2a741d +2c63202b4a20182c111f29211c20121a20121c2216161c12171a131718121d1e16191c11 +13160b45463efffffafefaf7fffefdfffefbfefdf9fefff9ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffdfffeffffb4dfaa5bb44058ac3a54a934559934518f2a4a752d20421044972d47a02a +47a62851a02958a22953a42c569f295aaa2760ad2960b826cdf1b4fffffffff9fff8fffb +90bb862d6f183c8627376c261f38181220131f2e1915280c223c152d4a1c2b4c133b5e1e +4164243c641e3d6e1d49802c3f76184b7e22345818c7d6bffdfdfbfffff8fbfcf6fcffff +fffffffffffffffffffefefefefefefffffffefefefffffffffbfffcfff64a823b348b22 +337e23376f2626521723411f2837221724131920181719181b1c1e191a1c151918101511 +20221ff1f1f1fcfafbfffefffffdfffefcfdfffefffffffdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffcfffcfffd94d08a58b33c5aad3953a634539533558e2d456e282036123a86244ba42e +42a0244f9c2a55a0294f9e29589e2a58a7275dad2859b31ecbefb2fffefffffafff3fff4 +65955b33751d3b86293a7a262a501f15271725351b1928111e32192b422535511e3f5e22 +2b491732551f3c63242e561a2f50191e3a0a485a40fbfffffffefffffffbfffffffafcff +fffffffffffffefefefefefefffffffffffffffffffffffffffefff3ffeb3b782a3b9229 +3e8b2b387d223678212155151b40151d3819162717141d18141a1a11171714191c13181b +b9bdbefbfffffcfffffcfffffefffffefffff8faf9feffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffdfff7fef67bc56c58b13d59a93a51a132519131558c2e3f6625303c26498e354aa32b +419f254e972c529b264b982655992856a5285aa92958b21ccef0b4fefdfffff9fdcce4ca +2a681b337d1a3789273681223161231c321b222e18212c1c1b28172033171d3714254715 +39611b44682a233f17263e1e304023182312c4c8c7fefdfffffefffcfdf8fefffffdfdff +fefefefefefefefefefffffffffffffefefefefefefefefefcfefdd7efcd337720348d1f +3b8c2637811e387f21346826234e1621401622311a1b2115151b111e231c565654d3ced2 +fdfffefefffffefffdfafcf9fcfef9fefffafffffbfcfdf8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdecf8ea68c1575aae3e57a239519c33539031538c2b355d1f4d50476dab58439e25 +43a1294e952f51972552972a51972552a02859a82b60b522c8e7acfefdfffffffb88b07e +2c7a173f90273e952c388a24336c252740221c28142633211520121d2c152e4624335523 +2a52163557242d4223202b1a1a231060635afffefffffefffffffbf9fcf3fefffafdfdfd +fffffffffffffffffffffffffefefefdfdfdfffffffffffffcfffb83a475398a23399d23 +3d93283c8a2431731b2f552426412023321d1b1e171c1b1714150fc9cac4fffefffffaff +fffcfffffdfffffefffffdfffffefffef9fffffcfffffcffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefffadff0dd59bc4759a83d569a375299335390314f8b27285115736f6e87bf743a981e +3f9c274d912e4e9223509226529828529f2b5aa52e5db020b9d69cfefffff7fff1538c45 +3189193e932b439b2d368d242e6d1e2342161426101a311422311e1f2c1b1f2e0f2b411a +223b1d20391b3142221d26131a2217edeee9fdfcfafffffdfbfdf8fcfffbfdfef9fffefb +fefefefefefefefefefffffffefefefffffffffffffbfbfbcfe6c9386b2637921d3da125 +3a8b253b872333731f23431c1e2b2114181714141615171216230f87997ff9fff3fffffa +fefffdfcfefbfcfffbfbfffafcfffbfefffffefefffdfcffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fafff6d5e8d250b83d54a13b519234519532518e2f4b8a22214d12958f9390c87f3d9b21 +3c99244d8f2e4d8f214c8b22478f1f529f2d5aa52f57a81bb4d096fafeffccdec4367a23 +3c972042973243992a388f26397d2a355a242a41271c3c131f341528361f1e231c1c211a +23311722321523301c131c099ca2a2fcfdfffffefffffffffbfffffcfffffdfcfffffdff +fffffffffffffffffffffffffefefefffffffbfbfbe6e6e638682e3c81283c9c21369320 +40862e42892d30711d21481b1c2a1b151d121c221420311130531d38602156793f87a172 +97a886a7bb96aec49ea9c29bacc4a0cee3c2e1f1d6f4ffe9ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fcffffc1e1b057a93b4b973350913748943a4f8c2f4a7525263b14b8b7bd90ce7b369724 +419a2c4c892c43882b538723438b2757912b4da827559c189dc086fff8ff9cb490287c1a +419e293c8d2447932f3886203d8229325f24273f1f1729131b281628372221301918280e +25331c2a35241d23194a4c47ffffffffffffffffffffffffffffffffffffffffffffffff +fff9fffefffbf8fff8f5fcf5fffefbfffffdc7dac726561c24681337882140912b3f8731 +3d882d3f9226377c1f325e21293f192845192446142e531f32542134571f335b1c2d5811 +316513336d1935741b35721335710f336f0f3b7016406c17446a2d52733c68825b809f66 +91b875acd2a1d7f0d2fcfffffffbfffffdfffffdfefefffafcfef9fffcfffefffdf6fff9 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fbfff9b2d6a64fa13f46892844842e4595344e84304172172f3f22e2dfe69acb8a38931e +429720488b223c84214884243f85234e8a284aa02359a1218bb273fefdff6a9357349023 +41a02a3e91293a85262671122c6d1b264e1a1e32191a2819182313182513293622212e1a +25311d131b0c171c15d4d6d1fefefefefefeffffffffffffffffffffffffffffffffffff +fefffbfefdfbfffefffffefffcfffb9eab9a2a4a232d651e3f84293c8d24378b1c38831a +3a851c4592284285283c6b23374d262f4b1b2b4e182f521a33561c4064273e67233f6a22 +4574234a7f25477e234c802d4b7b2f3968203862202c52152d571538611532620c49831d +5b9e1d4e990960a92685c348f1ffe3fefffbfffdfffffefffdfef6fffef8fef6ffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffdb2d5b5418d32abd08aa4cf7f438d2a4570283962203b4433fffdffb2d0ac3b8e22 +419023448b2b37782447853245882b4181214a9924519d1f82a966eaf5ed4083263a9b27 +369821449630479036397f272e67201e3e15162413192018131b0e192114152010151d0e +161e0f13190f797b76fffffdfefefefffffffffffffffffffffffffffffffffffffefefe +fbfff3fffcfffff9fff7fff86789681d441726571638752539792b357d273782233f8120 +38721b30651d2555191d4510293f182f4b1b3758213b5d21385a1e3d5f223a621c39671c +3b68233b66163d6816335c1630581c395c224064273b5e2435671e52842d589e2a50a129 +6bb92f74cc2a6ccf3467c9287ebe44f1ffecfdfafffffefffefffffcfdf7fffefbfffcff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffcf7cfe8d567ab56fbfff6faffcf47823238621a324c1f646462fffffdd2e5d241922b +4392273e872b2f60113364133e812442882847942249941e7da55fbbd3bb3b8f1d3d9c26 +3a99233886233778243a792a3163242a4323222a1f1719141c211a1c2218292f251e241a +171a13646661f6f6f4ffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffafffcffe8f5e44c7e41246b1d2e712131711a31751e3070222f7223327023346621 +2b4d1a233b19283c202e43242b3f1c344d23314f1d35541b304f162d4f123d6421406e25 +46752d4470214f7927456f233b62213a5e204068223d691c4a852959923161b2315dba2e +58a41e75c03070cf356bcf2e66c22194c363fefffdfffafff9fffff7fffffcfffffffffa +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefffaf5fbf7aae79aecfff2f0fbc14f7d352b51182c3522c3bfc0fefffbe8f8ee519e38 +348d0d387f1556712a80965647822e368220418a1f4d922770995382a97c3d911f3d9628 +3d942334791e2e661b3063202048141a2c1220231a23241e1f211c1416111517121a1b16 +7b7b79fefefcfffffffefeffffffffffffffffffffffffffffffffffffffffffffffffff +fffdfff8fffa4373372b7c13368f2145983044962a3d942c419327448c293a7525315a22 +2a421e2633172b36182b3a191f32162a401c2e491e355023334f1f2d4b153a6122427028 +4b8423538b284f86215488244a7c232d5e0d437724558b2d518d1c56902964b5326bcd28 +60af225d9f2472c52f6ccb3166c426bff07affffdefffcfffcfffff8fffff9fdfffefffa +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fbfffffffbffc9fbc0b2f6abaed5845474311b331b696b68fffefdfbfdfaf8ffff6eaa60 +318b10508b39f8fee4fefef4b6de9f31781c4386254b87275a8442538f4537861d42982d +48922f366f22265217264c19203f16192614151811191c15141613191b18171715918f90 +fffefffffdfefafafcf8f8fafbfbfbfcfcfcfdfdfdffffffffffffffffffffffffffffff +fcfffd8eb5893580233c951f3f9625459c2b41a0283fa72a419f25428a272e5f1d1c3f17 +1f391c28381b2e3d1c283c192131171b3011263e1c28401c2e4720324f1f33591c427028 +518f225aa330559e285f9e2974b33e5ba22a549b25579322568a25457c21559d2d6ece2c +6fc9365396255fa51e63bf2e66b828bade84ffffbffffadafff9fdfffefffffffdfffdff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefffafefcfdbbd9bd65a16573945f3c4a2915261ce0e0d8fdfdfbfffffffdfcff93b18b +217112a8d3a5fffefafffff4f9ffe64a84373974204675244c7a3944952f357f20399322 +3d7a2a29541c203e181f3a191f361c1a241b161815161b151517141f211eb1b1b1fffeff +fffefff8f6f9fffffffefffffafafafbfbfbfcfcfcfcfcfcfdfdfdfefefeffffffffffff +fbfffa477e3a3b94263b932347992b49a42f43a52a42a527378e2332652320371a172a14 +1c33191d311828372025381c2f3f221c2f112034181b2f13283d1c35502332591a407122 +518f245fb4336bc23d5ba12770b73375d13268c02c62a12f4877264e85314a8b2358ad1c +69c729b7f274afd86265a81b6bb8346d94399aa064f7f1d1ffffecfffff4fffdfffefcfd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffafff9ffffd6e4d5526551383a245d5958b7c7c4fffbfffcfffffcfafbfffdfad8e1cc +3f8636dbffd5f6fed7eeffadfffaee96c7852e62183f651c3d6e2d40a0254389313d9c26 +3064221d4115243b211f3520182919141a181516181218141116128a8c89fffffffdfbfe +fbf9fcfcfcfefbfdfcf7fbfafcfcfcfbfbfbfafafaf9f9f9fafafafbfbfbfdfdfdffffff +eff0ea3c762932931f338f22459b2c3e9e2345a22d469627347b1f26401b211c192a2b1b +2b3a191c2c12202c18202e142738162437172b3f23213319213617264114325916477924 +5e9b265fbc2563c62e5198205fa8236fd52966c32c437b22457a22468723589327579e28 +60b526b4db6effffc5bfdc805ab122598d2b495733747959d1d6b6fefef6fffffafbfffa +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffafafaf555555e7e7e7fffffffefefefcfef9fbfffefffdfffffdf9 +b1ccabb5fbb5b8ffadb7e994e1f091f7ffcb6a79402e4d1435772f479b29489d2439962c +2c59221f43171c2e16181a151914181a141819181617191410220ca0ac9efcfffffbf9ff +fbfafffdfff5f6fef1f5fefbfafcf7fafbf6fbfaf6fdfcfafffafefdf8fefef9fffdf8fc +fdfffc96ad912c601e1e6a0f33882142942e4b9838358021314d27192b13161e111c2218 +222d1d1825131b2616232b1e24311d1c2b1429391f2432192e3b212e481b396c1f4b922c +5cb32e66c02aaceb5284b93746892870d0316bcb2b46702837602848672355882352ad22 +5dbd2580ba41d4e3a2ffffe6c6df8c61a52a34501f282f1f484f2ea8a8a0f4fffcfffdfd +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffefefefffffffffffffcfcfcfffffffdfdfdfffffffffffbf8fcfbfffefffffefb +f0ffe99ed89e94d38c8dbb739aaf6ad3e09b717d4d1d440d3f912d48a731429829358820 +396e262a551d1e39181321121620181924161f2f14283e182d4d1b5e774de3f0dcfdfeff +fffafffffbfffff8fefff9fffaf9fffdfcfffcfbfff9f9fbf8faf9f8fdf7fafff6f6fef1 +fcfbf7fffeffc1c6c25a715728551c24611328671629661920341b121d0d141510171715 +1b1e171820131820151c1f181c24171a251426361c1e36122c4f19316618408c2057b032 +50b72a7dd23feaff96e9fb8b638f2d62b92c68cc2e5b952e396d18385c1e406a2249912b +5bb62b78bc459bbc85cce3affcffefa5c878528c261f32141b1515262f1ef6f4f7fffcff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffcfcfcfdfdfdfffffffffffffbfbfbfffffffafafafffcf9fbfffefbfcfffffcfd +f8fff3aaceaa64905f658a56657b558a90545661362e652141a02c389d273c9227438629 +377124386b292a5122163412203b1a2d4c22365c233f6927325e0f4b74266e8c50bfcfb2 +e1e6dff7f7f5fffdfefef9fffffefffefdfffdfcfffffefffffefffffafffdf8fefffaff +fbfbfdf9f8f6fffefbfffefddadadc99a39b586e5726461f151c141214111914181b161c +18161717191611130e181a171719141e241a29382121461333711e3e90214bab265cc133 +5ec8347ac841d3da96ffffac9aaf5253932162c22d6fb8355da02c416d20375b1b3f7225 +529d1e72ba3c6c996087a26ddae3c8f8ffea41743195a88ae1d4deb1bab7fffdfffffff6 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffefefefffffffffffffcfcfcfffffffcfcfcfffffffffbfcfefffffbfffffffeff +fefefce6f7e7536d523851333a483b56523775895640842d38962839972739872131651d +255917346426355e24294e1832581f3c64263b6a24396b22305d2435631a34631239651a +507937547b3a678e4d6e95567899628fac7caac49dc2d5b7dce8d4f2f8eefefcfffffbff +fbfffdf6fffcf2f8f6fefcfffffafffffbfffffeffd7dcdf9f9f9f565457241f251a151b +1210131919191517141a1f1b1722141f2c1a2b45222d601d45962d4baf2b4db42759bb30 +65c22c6cb24094a072faf9b6dce5a2527823529c2160a528538f2d4c7c263f60193e6121 +4e871e60a6295580395b6751768661d1e0cbb9c4b6fffffdfffafffbfdfcf7fff2fffeff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fbfbfbfffffffffffffafafafffffffffffffffffffefefefffcfefefffff8fcfdfffeff +fffdfffdfffeb5c1b72634251a1b1f282921547b383885253d8e3146932d3b8025356625 +2f5c21346023365e2232581b355c1b345d1736641b39691d38682e437627427b1c468222 +3b78193f7d183d7e163d7e18397f0f377c12397b1a3d791f487f2b5f8f437ba56699be8a +c5dccaeffbf1fffffbfffefffafafcf4f8f7fefffafefff5fdfbfeffffffd4d4d4727272 +2323231315141217112128201c3c15274c20356728367f2346a62b4db82c4fb52b55b230 +65bf2a5da341596e47c3ca9efaffdf798f4e477a1e437119284c1c3054143d5a20446328 +3b70204d95255a92312a38273d4039556d4dd6d2c9fefaf7fcfdfffffefff8fff0fffcff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffbfbfbfffffffffffffffffffbfbfbfffffffffffffffdfffffffffefffffcfcfe +fffefffbf9fefeffffced3cd635e64374e342d6b18358025377b24347416336d21366a22 +33611936631e3c66263e6627426b29416c244874254878243c7318437d19518d29478329 +3f7b25437e243e761d457b2744801c4a8a294f932e48922349971d4f9c1c49951b47901d +4b812367904aa3bc95e1ecdcfefffafefefcf6f4f7fcfbfffcfafdf8faf9fcfffbfcfffd +d0d2d1696b6a191e180f19101b47122f63233e822f358c233ca0224fb63152b330449e22 +57ba2b579c434857387f836cfbfff5a1b37f345619334a20313d252c411a2d461f395b1f +32671f3c8421599d263b622b1d140f101c10636a62fdfff2fbfff6fef9fdfffbfffeffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffefefefcfcfcfefefefefefefffffffdfdfdfffffffcfffffdfdfdfcfbf7fffffd +fffffffffefffffffffcfdf8fdfff952834b307d1f347b1f42822b33711c3670233a7521 +407821447b274378263f72234475264475234b7d284d7d2744782342791e4680293b7626 +407b27467f214a7f23437221436d21416f24497e2c51922e62a93166b32f5aa72557a327 +5da32659a521559b1f649a3aa5c18eeff5e9fffdfff8f4fffcf7fdf9f9f9f7fcf6f3f8f2 +fefefefffeffc9c9c9646963182c131d4115336c27388229368822409329499d2e429626 +4fa72c58993d42513c53594beff5e7cdd5ae243912151f141f23121c25101f2c1a283c17 +2e4b1b406a283a6b122a4d177171654545474a534efbfffffefffffdfef9fffcffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffefefefffffffffffffcfcfcfffffffefefef9fffffffffffffefafffffb +fcfffffefffffefcfdfffffbe4f2db3075252c821d478b2844842d3679293c7d2144832a +45862845872643842045831e47831f3e77183f751d447825487727487c293b752034721c +47892843851b458322477e2d4a7b22457924437e2442851e509a215ca92956a027549c2c +549a285ca92966ba276bc22661af2579af51c6d9b9fcf9fff7f0f8f4f4f4f1f6f0f0f2ef +f8f3f9f7f0f8fffdfffefefec9bbc8575f5413330a1c4e0f2f68213872263c7e273a8121 +4281195a9334354b3e334535aab499d1cdb02a341b1f2525141817131917101417161419 +1a17101f220d2b3421959d9ff0fffdfffcfffffefdfffffafffcfffefffffcfffbfffdfe +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb6d4ae36722a388c1d4395263883243987243c872048892f +4a8e2744842446822a39731e437f27417c2240762042721e426d1e44761d417825417a2b +3f7b21418224448c294697214e952b54a02253a72d6caf3b529c235fa1256dbc2d5fa52b +497a2154922765af346ec42b6ed12969c9295b9f24a7c39deff1fdecf0f1eaedf6ecefe8 +eff3e4edeee8eeecf9f4f1fafff9f9fbf7f6abada8434d421b2e1a1b361522461a335926 +305d26456d2f2d4d1e1a2c1e67706fb5b9ababada0e6e4e7e0e0e0dcdcdccdcdcdc7c7c7 +c4c4c4d5d5d5fafafaffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffbbd2b8306f1e419928418d293f86283d93263d952448932a +428d24448a2835741b4180274686284684214d87234b811f4c86205492254b8c26428423 +4b9026519a2e53a63256b22b51b1295bb02f5ab92b71cf3d6dc93a4b9c1c65be2876ca36 +457b274078135fa52b5aa61f69c0316fcb2ab4f158b2ce60cad2abeef0efeff0f2eceaf7 +eeeeeceeeeeceff0eaecebf0eeeceff2f0f3fdfeffebeff0a1aaa54d5a501d2e1c10230d +1831131d330c1b2b0e101914424649a2a59adce0d2fcfdfffefefefffffffefefeffffff +fefefefcfcfcfffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffedf4ed458232348e1d3c872a48902d409e263ea4254ba72b +499d2d3f8c2439811e478d2a42891f4b941f5aa12765a92e6bb63765b32b5cab2c56a12b +56a52855a7295cb9345bc2294fbc2353b32b6dc12d67c22575cf3153a4245eab2775d52d +5a9d364378204a8c2b4f8b275da82967bd28e7ffa9fafcd7d3de92e6e6dcf2f0f5f0f1eb +eeedf3efeef3eeeeeef0f2e5efefefeeeef0efeef3f2f1f7faf9fff9f8fdcfcfd1959595 +63656452564855574c37363b1d1c21797c73dee1d8f1f5f6ecececeeeeeef4f4f4fefefe +fffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffef9ff8ab57d2a7a173e932b459b2c40a32446b02c47ac28 +4ea930378e1b4c9e3053a63453ac2c5fba2f6bc53274ca356ec2366bc12a65b92d5bac2b +5aaa2752a7255cbc345fc92b56b92a53c03168bd2e73ca2e71c92963ba2d5b9a2f71c62d +6bbf33639d2d4e93264a7f274e90265fb12bc6dc8affffdaffffdfe9efafe2dedbf4f3f1 +edece8efeef4eaeaeceff2e9eaede4eef1eaeeeeecedebecf0eef1f3eef2f7f1f5fff9fb +fbf5fff2eeeffdf9f8d0ced32a2a2c5f605af6f8f3e8eceff3f3f3f4f4f4f9f9f9fdfdfd +fffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffaffdeefdc49853b348e1d3ea02741a42649ac2b48ac2e +48a7273e9a1d53af3353b43157be2e5fc92b6bd12f71d12f60b42a6ac02960b5245dae2b +63b23249992049a12664c63560c1364ac02c5dc6355dc12175c3396ccc2c4d972663a331 +6cca2c70b4295ba8244a7f254c87295aa32d8ca34bc4c67dfcfed9fefde9dee0b9e6e4e5 +f3f2eef1f2ecefeef6edefeaf2f3ededeee9eeefeaf1f1efececeaeaeae8eeeeecf1f2ed +ecebf1f7f7f5ebece7fbfbfbcccecdced0cbf9f9f7fefdfffcfcfcfefefeffffffffffff +fffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffafffefdffa8c8a1307a1b3f9e2a4aa8304aa62946a52f +44a32347a62654b83451ba2c57c42b66d03069c92a6fc52c58a7276cc02d67bc2b69bb35 +69b5394b952643912459ad315cc2324fb82756bd2eadf36eedffa9a6e15152a41c3b731c +5db32a6eb63057a22b4e832b477c204c8a256578408b8b6fbdc491faf9f4fffefcccd1b3 +eff1e6eceaf5eeefe9ececececebf0ecebf0eeeef0eeeff1edeef0edf1f0ecf0efe7ebea +f0f2efe9eee8ebf0eaeaefebf2f4f1f8faf7f7f7f7fefcfffffffffffffffffffffdfdfd +fdfdfdfffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffbfdfafffdfffbfffa6f9564357c2040992545a329429f2c +48a62c46a92b50b7344bb62a52bc265fbd2974be33649f1e519b2273c53370c63167bb31 +5dac2d589f354e94324993245db7315aba255ab12ee4ffb6ffffc9f3ffa07ab535366d1a +468a236bb2325197234e8029406d1c3f6a2249612d515b39818867c3cba4fefffadbdecd +e0e2d4f1f2eaefeef6f0f1ecebeaeff0eff4eeedf2ededefefeff1ecedefeaebedeff0f2 +eeefeaededebeef0efebf0ecf0f2f1ecececf9f7f8fffefdfefefeffffffffffffffffff +fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff9fffafcfcfafff9ffe6f0e74a7c33388f1c40a22b459f2d +3f9e2a46a82f4bb13149b42a51b62864b62ecbff8abbdf735ea52d76c83662bb215eb624 +58a9264d95293e8122458a1f579c2853bb1e66c14ae8fee7eafcc8ffffc8afcd69457d26 +4a802c5da225498c1b4d7f28496e293754243e57302c38244d5637717961c0cba3fbffe5 +c3c7b6fbfbfdf2f1f6efedeeefefedefefededeee9eeede9f0efedf0efedefedeeefedee +f1ebebf3eef2efedf2ededefecedefefeff1f4f2f3fffef9fffffffffffffefefeffffff +fefefefdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffafffefcfffffefffffeffffbdcebb41702c3e90223fa827 +46963544a92748b13044ac3148a92879cf62f4ffbdfdffac7ec13d66c13662b22d5ba72b +54992c517e2939691f3a722b418923509e2e79c44dcbffd9daffe0ffffd8f8fac8518322 +3a672248741d4165284266263b622123461052722f1c34102a3024464d3d636b56babfa9 +c5c9b8f5f6eef8f8f8f3f0f9eeeeeef0f0f0efefefedededeeeeeef5f5f5fbfbfbfdfdfd +fefefefefefefcfcfcfafafaf8f8f8f8f8f8fafafafcfcfcffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffdfffcfefdf9fef7fefffbfafff9aec6ac2e6720499f30 +3f9c2743a22a4dab314aa82c3fa1288de47ce0fec0fffcd691c6525eb02a599d2257942d +4c8429426a21315e1b30621b32701b40841f68ac45b7f6bfceffebe6fcd5fdffe966843a +2d4d1b254212162d1327411a32522319371146652a435e29191f13272d1f373e2e636758 +a6aa9ce6e7e1fffffff3f1f6f0f0f0efefefedededefefeff5f5f5fdfdfdffffffffffff +fffffffffffffffffffffffffefefefdfdfdfefefefefefeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffff7fffffefffcfff8fffff8fffafffffeffa4bea3407831 +439c2e499f3055ad354ea82d41a02c88d680cbfccdfffffa95b85a6ab131558d20436d25 +446c2d35561f274e193b5f21366521386f1b46832482c582b9fcd9c9fbd8f3fff9808d57 +2a3c14111e0a1f2a1934461c3c5420243e17253e16375019282d26151b111619102c2f26 +63645ed2d3cefdfdfbfdfdfdf5f5f5f2f2f2f0f0f0f3f3f3f9f9f9fefefefffffffefefe +fefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffdfbfffefffafbfdfffffffffdfffffbfffbfffbb7cab6 +477b3b43842a52a53949a13048a23172b268befcd7effff488a35669ad34558329304921 +314927294121243f2033461934572134611e467f1e4b87417bbf84a7e2c2d0f0db899361 +2431131216171417101a220b233016232f231f272a38413066686360625d1b1d1a151716 +131313a1a19ffefefcfffffbfefefefcfcfcfbfbfbfcfcfcfefefefefefeffffffffffff +fffffffffffffefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffcfffdfefffdfffffffefbfffefefefafbf3fffffbfffdff +cddcc9557647407e3358a346499b3745813780bf90d3e6d07791525f9d384a722c243120 +233124202e211e2e242b301c263b1c2b4c1f37651a335f223b6b31659679a2c5af748656 +808d6fd1d5d4d7d7d5d0d0d2dadbdde9eaecfaf8fffffefbfefffdfeffffcacacc5e5e60 +464648cfcfcffcfcfafffffbffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff9fffffbfdf8fffffbfffefffcfffffcfff8fffffafff9ff +fffffaeff8f789a3884e7a3f38732f467f385f9058aab4a9677c514476313147211d2321 +27302d292e2a1d22251c1b1719221d22341e254021314c213043253b574066847a5d6e4c +c0cbbafcfffffcfdf7fdfdfffffffdfefff5fffefffffdfafdfdfdfffffffffffffefeff +fffffff9f9f9fffffdfffffdfffffffefefefdfdfdfffffffffffffffffffefefeffffff +fffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffbfffffefffdfffffbfbfbf9fefffffcfefdfcfefdffffff +fffef9fcfbfffcffffd2dec67a917561885c4c603d646a6a555e49536b51878882b9b7bc +d1d7d3d4d3d1afb0b28381864c4d5223241e161f1c192414191d0f0d190d1e2e2e696f63 +e8edf3f6f5fffffcfffffefffbfdfcfefffdfffefffff9fffffffffcfcfefffffffcfcfc +fffffffffffffffffffcfcfeffffffffffffffffffffffffffffffffffffffffffffffff +fefefefefefefffffffffffffffffffffffffefefefefefeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffbfffefffcfdfffffffdfffcf9fffdfffefffffbffff +fffdfffbfffffefffffffbfefffbfdebf6eedcd3d4c3ced0e5e1def2f7fbfff9fffffbff +fbfffafffefafffffdfcfdfff9f7f8dad0d1a9a7a87c8083797a6a84898399a29fd0c7ca +f7fbecf2f1eff6f1f7fdfdfdfcfffdfbfffffafefdfefffafffefffffefffffffdfefefc +fefefcfffffffffffffffefffffffffffffffffffffefefefefefefefefeffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +f3f3f3f2f2f2f3f3f3f7f7f7fcfcfcffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fdfdfdfcfcfcfbfbfbfcfcfcfefefefffffffffffffdfdfdffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffefefefefefefffffffffffffefefefefefeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefefefefefefefefefefefeffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffefefefefefefefefeffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fefefefefefefffffffffffffefefefefefeffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer diff --git a/doc/kdvi/index.docbook b/doc/kdvi/index.docbook new file mode 100644 index 00000000..cd60e640 --- /dev/null +++ b/doc/kdvi/index.docbook @@ -0,0 +1,1072 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" + "dtd/kdex.dtd" [ + <!ENTITY kappname "&kdvi;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE"><!-- change language only here --> +]> + +<book lang="&language;"> + <bookinfo> + <title>The &kdvi; Handbook</title> + <authorgroup> + <author> + <firstname>Stefan</firstname> + <surname>Kebekus</surname> + <affiliation> + <address> + <email>kebekus@kde.org</email> + </address> + </affiliation> + </author> + <!-- TRANS:ROLES_OF_TRANSLATORS --> + </authorgroup> + + <copyright> + <year>2001-2004</year> + <holder>Stefan Kebekus</holder> + </copyright> + + <legalnotice>&FDLNotice;</legalnotice> + + <date>2004-02-27</date> + <releaseinfo>1.11.00</releaseinfo> + + <abstract> + <para>This document describes &kdvi; version 1.1</para> + </abstract> + + <keywordset> + <keyword>KDE</keyword> + <keyword>linux</keyword> + <keyword>TeX</keyword> + <keyword>DVI</keyword> + </keywordset> + + </bookinfo> + + <chapter id="introduction"> + <title>Introduction</title> + + <para>&kdvi; is a plugin for the &kviewshell; program which allows + &kviewshell; to display &DVI;-files (<literal + role="extension">.dvi</literal>) which are produced by the TeX + typesetting system. &kdvi; supports many extensions of the &DVI; + standard, for instance the inclusion of &PostScript; graphics or + hyperlinks. More details, examples and all the technical + specifications can be found in the file + <filename>KDVI-features.dvi</filename> (or see + <filename>KDVI-features.tex</filename> for the TeX source of that + file).</para> + + <para>For up-to-date information, consult <ulink + url="http://devel-home.kde.org/~kdvi">&kdvi;'s home page</ulink>. + </para> + + <para>TeX is a high-end typesetting system geared towards + scientific, and in particular mathematical typesetting. More + information about TeX and &DVI; can be found on the <ulink + url="http://www.tug.org">homepage of the TeX user group</ulink> or + the German <ulink url="http://www.dante.de">German DANTE + e.V.</ulink>. + </para> + </chapter> + + + <chapter id="starting"> + <title>Starting &kdvi;</title> + + <para>Most of the time, &kdvi; will be started by just clicking + onto a <literal role="extension">.dvi</literal> file in the file + manager. For convenience there exists a command + <command>kdvi</command> which calls &kviewshell; with the &kdvi; + plugin preloaded. The viewer may thus be started using the command + <userinput><command>kdvi</command> + <parameter>somepath/paper.dvi</parameter></userinput>. The command + lines <userinput><command>kdvi</command> + <parameter>somepath/paper</parameter></userinput> or + <userinput><command>kdvi</command> + <parameter>somepath/paper.</parameter></userinput> will also + work. If you are connected to the internet, you can access files + which reside on other computers by giving a &URL; as a parameter, + like this: <userinput><command>kdvi</command> + <parameter>http://somepath/paper.dvi</parameter></userinput> + </para> + + <para>If you give a &URL; as a parameter, you can tell &kdvi; to + jump directly to certain place of the &DVI; file. + For example, <userinput><command>kdvi</command> + <parameter>file:paper.dvi#43</parameter></userinput> will make + &kdvi; to open page 43. If you have included source file + information, a command like <userinput><command>kdvi</command> + <parameter>file:paper.dvi#src:43paper.tex</parameter></userinput> + will make &kdvi; search for the place in the &DVI; file which + corresponds to line 43 in the TeX file + <parameter>paper.tex</parameter>. You will hardly use this option + yourself — read the section on <link + linkend="forward-search">forward search</link> to learn how to + set up your editor to start &kdvi; automatically. + </para> + + <warning><para>Don't forget the <userinput>file:</userinput> + prefix or it will give unexpected results. For example, the command + <userinput><command>kdvi</command> + <parameter>file:paper.dvi#43</parameter></userinput> will open + page 43 of the file <filename>paper.dvi</filename>. The command + <userinput><command>kdvi</command> + <parameter>paper.dvi#43</parameter></userinput> will try to open + the file <filename>paper.dvi#43</filename>.</para> + </warning> + + <para>There is another option which you will most likely not need + to specify yourself. If you type + <userinput><command>kdvi</command> <parameter>--unique</parameter> + <parameter>somepath/paper.dvi</parameter></userinput>, &kdvi; will + load the file if there is no other instance running which has the + file already loaded. If there is, this instance of &kdvi; will pop + to the front. A command like <userinput><command>kdvi</command> + <parameter>--unique</parameter> + <parameter>file:paper.dvi#43</parameter></userinput> can be used + in shell scripts to make a running instance of &kdvi; to jump to + page 43.</para> + + <para>The usual parameters handled by &Qt; and &kde; applications + also work: <userinput><command>kdvi</command> + <option>-style</option> <parameter>windows</parameter> + <option>-display</option> <parameter>:0</parameter> + <option>-geometry</option> <parameter>400x400+0+0</parameter> + <option>-caption</option> <parameter>"DVI"</parameter></userinput> + </para> + </chapter> + + + <chapter id="print"> + <title>Printing &DVI; Files</title> + + <para>&kdvi; can print your &DVI; files using the standard &kde; + printing interface. Internally, &kdvi; uses the program + <command>dvips</command> to generate &PostScript;, which is then + passed on to the printer. In particular, <command>dvips</command> + must be installed if you want to print with &kdvi;. The program + <command>dvips</command> uses its own configuration files and its + own settings, which are fine for most purposes. However, if you + care for optimal printing results, you should configure + <command>dvips</command> manually and make sure to set a default + MetaFont mode which fits your printer best — on many systems + you'll find a <ulink url="info:/dvips">GNU-texinfo documentation + of <command>dvips</command></ulink>, and you might also want to + look for a file called <filename>dvips.dvi</filename> or + similar.</para> + </chapter> + + <chapter id="export"> + <title>Exporting the &DVI; file to other formats</title> + + <para>If you want to save your file as in &PostScript; or PDF + format, it is not recommended that you use the printing function + and redirect the printer output to a file. Instead, you can use + the export functions which produce better-quality output that + retains many of the special features of the dvi format and looks + better in many of the viewing applications, such as Adobe's + <application>Acrobat Reader</application>. You will find the + export functions in the <guimenu>File</guimenu> menu.</para> + + <section id="export-ps"> + <title>Exporting to &PostScript;</title> + + <para>As in printing, the external program + <command>dvips</command> is used to generate the &PostScript; + file. If the &DVI; file contains hyperlinks, these will also be + included in the &PostScript; file. If you are an expert, and if + you would like to generate output which is optimized for a + specific printer, you should probably start + <command>dvips</command> manually and choose the proper MetaFont + mode yourself.</para> + </section> + + <section id="export-pdf"> + <title>Exporting to <acronym>PDF</acronym></title> + + <para>In order to produce <acronym>PDF</acronym> files of high + quality, &kdvi; converts &DVI; to <acronym>PDF</acronym> using + the external program <command>dvipdfm</command>. If you are + working on a machine where an older distribution of the TeX + typesetting system is installed, it may be that the program + <command>dvipdfm</command> is not installed. In that case, you + need to use the printing function to generate + <acronym>PDF</acronym> output.</para> + + <warning> + <itemizedlist> + <listitem> + <para> + If you use an older TeX installation, and if are viewing + the generated file in Adobe's <application>Acrobat + reader</application>, you may well find that some of the + fonts look extremely poor although a printout is fine, + and although the document looks ok in + <command>kghostview</command>. This is a known issue with + the <application>Acrobat Reader</application> and bitmap + fonts. At the time of writing, the only practicable + workaround seems to be to avoid bitmap fonts, or to + upgrade to a more recent TeX installation. + </para> + </listitem> + <listitem> + <para> + While <command>dvipdfm</command> produces high-quality + <acronym>PDF</acronym> files, <command>dvipdfm</command> + currently currently ignores the &PostScript; that is + embedded into the &DVI; file. Embedded PostScript is + generated e.g. by the <application>xy</application> macro + package, or by the "Embed PostScript files" function + &kdvi; described <link linkend="embed">below</link>. + </para> + <para> + If you find that the generated <acronym>PDF</acronym> + file misses graphical data, use the print function of + &kdvi; instead. + </para> + </listitem> + </itemizedlist> + </warning> + </section> + + + <section id="export-text"> + <title>Exporting to text files</title> + + <para>&kdvi; can also save your &DVI; files in text format.</para> + + <warning> + <para> + The &DVI; file standard was not designed with this kind of + functionality in mind. This function therefore only works + well with standard ASCII characters. It will not work with + non-European languages. Depending on the fonts used in the + files, there may also be problems with accented characters or + umlauts, and sometimes with ligatures. + </para> + </warning> + </section> + </chapter> + + + <chapter id="embed"> + <title>Embedding PostScript files into the &DVI;</title> + + <para>The traditional way of using graphics with + <application>TeX</application> does not include the graphics data + directly in the &DVI; file. Instead, the &DVI; file contains only + a link to a graphics file which resides on the hard disk. The + advantage of this procedure is that the &DVI; file stays small, + and that the graphics file can be modified indepent of the + document's <application>TeX</application> source. The method, + however, becomes fairly inconvenient if you intend to archive the + &DVI; file, or if you wish to send it to someone else: rather than + handling a single file, you have to deal with a multitude of + files, which need to be kept in exactly the place specified in the + &DVI; file for everything to work.</para> + + <para>For that reason, &kdvi; allows you to embed external + &PostScript; files into your &DVI; file. To embed all &PostScript; + files into a &DVI; file, use the menu entry <guimenu>Edit/Embed + external PostScript files</guimenu> </para> + + <warning> <para>&DVI; files with embedded &PostScript; work fine + with most other &DVI; handling software, + e.g. <application>xdvi</application>, + <application>dvips</application> or + <application>dvipdf</application>. One notable exception is the + <application>dvipdfm</application> program, which currently + ignores the embedded &PostScript;. Since + <application>dvipdfm</application> is used internally by the + "Export to <acronym>PDF</acronym>" function of &kdvi;, expect + problems when you use that function. The same issue shows with + other software that uses embedded PostScript, e.g. the + <application>TeX</application> <application>xy</application> macro + package.</para> </warning> + </chapter> + + + <chapter id="inverse-search"> + <title>Using inverse search</title> + <anchor id="inv-search"></anchor> + + <para>Inverse search is a very useful feature when you are writing + a TeX document yourself. If everything is properly set up, you can + click into &kdvi;'s window with the + <mousebutton>middle</mousebutton> mouse button (on some systems, + when you don't have a three-button mouse, you can simultaneously + use the <mousebutton>left</mousebutton> and the + <mousebutton>right</mousebutton> button). After that, your + favorite editor will open, load the TeX source file and jump to + the proper paragraph. To use inverse search, do the + following:</para> + + + <procedure> + <step> + <para>Produce a &DVI; file that contains inverse search + information. This is explained in the section <link + linkend="inverse-search-tex">Producing TeX files for inverse + search</link> below. If you just want to test the inverse + search feature, you can also use the example file + <filename>KDVI-features.dvi</filename></para> + </step> + <step> + <para>Let &kdvi; know which editor you would like to + use. Choose an editor in the <guilabel>Preferences</guilabel> + dialog (this dialog can be reached by choosing + <guimenuitem>DVI Options</guimenuitem> in the + <guimenu>Settings</guimenu> menu). The next section of this + documentation, <link linkend="opt-rendering">Rendering + Options</link>, explains this dialog in more detail.</para> + </step> + <step> + <para>Some editors need to be started manually, or need + additional configuration. You will find a description of all + supported editors in the section <link + linkend="inverse-search-editor">Setting up your + editor for inverse search</link> below.</para> + </step> + <step> + <para>Test your setup. Open your &DVI; file in &kdvi; and use + the <mousebutton>middle</mousebutton> mouse button to click + into &kdvi;. The editor should pop up and display the TeX + file.</para> + </step> + </procedure> + + + <section id="inverse-search-tex"> + <title>Producing TeX files for inverse search</title> + <para>There are essentially two ways to produce &DVI; files + which contain inverse search information: you can either use a + TeX/LaTeX binary which generates and includes the necessary + information automatically, or you can include an extra package + which is written in TeX/LaTeX.</para> + <itemizedlist> + <listitem> + <para>A TeX binary which generates and includes the + necessary information automatically is certainly the + preferred method of including inverse search information. + If you use version 2 or greater of the <ulink + url="http://www.tug.org/teTeX/">TeTeX TeX + distribution</ulink>, you can use the 'src-specials' command + line option of the tex or latex command, as follows. +<programlisting> +tex --src-specials myfile.tex +</programlisting> +or +<programlisting> +latex --src-specials myfile.tex +</programlisting> + </para> + </listitem> + <listitem> + <para>If you do not have a TeX binary which includes inverse + search information natively, copy the files + <ulink url="srcltx.sty"> + <filename>srcltx.sty</filename> </ulink> and + <ulink url="srctex.sty"> <filename>srctex.sty</filename> + </ulink> to the folder where your TeX file resides (you + can do that by pressing the &Shift; key and &LMB; while the + mouse pointer is on a hyperlink.) If you use LaTeX, add the + line +<programlisting> +\usepackage[active]{srcltx} +</programlisting> + to the preamble of your LaTeX file. If you use plain TeX, the line +<programlisting> +\include{srctex} +</programlisting> + will do the trick.</para> + </listitem> + </itemizedlist> + + <tip> + <para>While inverse search is extremely useful when you are + typing a document yourself, it might be a good idea to remove + the inverse search information before sending the &DVI; file to + someone else.</para> + </tip> + + </section> + + <section id="inverse-search-editor"> + + <title>Setting up your editor for inverse search</title> + + <para>While inverse search works generally very well with most + editors, some of them require a bit of extra care. This section + explains how to configure your editor.</para> + + <section id="editor-setup-emacs"> + <title><application>Emacs</application></title> + + <para><application>Emacs</application> works well with + &kdvi;. The actual behavior of <application>Emacs</application> + depends largely on the configuration. As usual, you can + customize <application>Emacs</application> completely, if you + are willing to fight your way through Lisp code.</para> + + <para>&kdvi; uses the program <command>emacsclient</command> to + remote control <application>Emacs</application>.</para> + <important> + <para>The program <command>emacsclient</command> requires that + <application>Emacs</application> is running, and that the + program <application>Emacs Server</application> is started inside + <application>Emacs</application>. Inverse search will not work + optimally unless you have started both + <application>Emacs</application> and the <application>Emacs + Server</application>.</para> + </important> + + <para>To start the <application>Emacs Server</application>, you can do + one of the following:</para> + <itemizedlist> + <listitem> + <para>In <application>Emacs</application>, start the + <application>Emacs Server</application> by typing + <userinput><keycombo action="seq"><keycap>M</keycap><keycap>X</keycap></keycombo> + <command>server-start</command></userinput></para> + </listitem> + <listitem> + <para>Add the line +<programlisting> +(server-start) +</programlisting> + to your <filename>.emacs</filename> file. Restart + <application>Emacs</application></para> + </listitem> + </itemizedlist> + + + <tip> + <itemizedlist> + <listitem> + <para>Make sure that <application>Emacs</application> is + installed. Try to start <command>emacs</command> from + the command line.</para> + </listitem> + <listitem> + <para>&kdvi; uses the command + <command>emacsclient</command> to remote control + <application>Emacs</application>. Make sure that + <command>emacsclient</command> is available on the + command line by trying the command + <userinput><command>emacsclient</command> + <parameter>Name of a text + file</parameter></userinput>. This should open a new + text in the <application>Emacs</application> + editor.</para> + </listitem> + <listitem> + <para>If <command>emacsclient</command> fails with an + error message like <computeroutput>unable to connect to + local</computeroutput>, make sure that + <application>Emacs</application> is + running. Furthermore, make sure that the + <application>Emacs Server</application> is started by typing + <userinput><keycombo action="seq"><keycap>M</keycap><keycap>x</keycap></keycombo> + <command>server-start</command></userinput>.</para> + </listitem> + <listitem> + <para>If you want the frame to be auto-raised, add the + <function>raise-frame</function> function to + <quote>server-switch-hook</quote> (do + <userinput><keycombo action="seq"><keycap>M</keycap><keycap>x</keycap></keycombo> + <command>customize-variable</command> + <keycap>RET</keycap> + <command>server-switch-hook</command></userinput> and + enter the function name into the text field.</para> + </listitem> + <listitem> + <para>If you have changed the buffer since your last + save, <application>Emacs</application> will ask you: + <computeroutput>Revert buffer from file ...? (yes or + no)</computeroutput>. You will probably always want to + say <emphasis>no</emphasis> here, since reverting means + that the file is reread from disk, <emphasis>causing all + your changes since the last save to be + lost!</emphasis></para> + + <para><command>gnuclient</command>'s behavior + of silently reloading the changed buffer is probably + preferable — add the following lines to your + <filename>.emacs</filename> file to emulate + <command>gnuclient</command>'s behavior with + <command>emacsclient</command>:</para> + +<programlisting> +(defadvice server-visit-files (around save-buffers last activate) + "Try to emulate gnuclient behavior with emacsclient. +Works only for visiting one buffer at a time." + (let* ((filen (car (car (ad-get-arg 0)))) + (buf (get-file-buffer filen)) + (this-buf-modified-p nil)) + ;;; the following is copied from server-visit-files, with + ;;; a modification for the `verify-visited-file-modtime' test + (if (and buf (set-buffer buf)) + (if (file-exists-p filen) + ;;; if the file has changed on disk, reload it + ;;; using `find-file-noselect' + (if (not (verify-visited-file-modtime buf)) + (progn + (find-file-noselect filen) + ;;; if user answered `no', reset modtime anyway + ;;; so that server-visit-files doesn't realize the + ;;; difference: + (set-visited-file-modtime))) + ;;; if file exists no longer, we let server-visit-files + ;;; deal with that + t) + (setq buf (find-file-noselect filen))) + (setq this-buf-modified-p (buffer-modified-p buf)) + (set-buffer buf) + (set-buffer-modified-p nil) + ad-do-it + (set-buffer-modified-p this-buf-modified-p))) +</programlisting> + </listitem> + </itemizedlist> + </tip> + </section> + + + <section id="editor-setup-kate"> + <title>&kate;</title> + + <para>&kde;'s editor &kate; supports inverse search very well. + No extra setup is required.</para> </section> + + + <section id="editor-setup-kile"> + <title><application>Kile</application></title> + + <para>The LaTeX-editor system <application>Kile</application>, + supports KDVI very well. No extra setup is + necessary. Further information about Kile can be found at + <ulink url="http://kile.sourceforge.net">Kile's + homepage</ulink>. + </para> + </section> + + + <section id="editor-setup-nedit"> + <title><application>NEdit</application></title> + + <para><application>NEdit</application> generally works very well + indeed. Clicking into the &DVI; file should open a new + window. If the TeX file is already used in another window of + <application>NEdit</application>, the newly opened window + displays another view of the buffer. Otherwise, the TeX file is + loaded. After opening the window, + <application>NEdit</application> highlights the first line of + the appropriate paragraph.</para> + <tip> + <para>&kdvi; uses the command <command>ncl</command> to + remote control <application>NEdit</application>. Make sure + that <command>ncl</command> is available on the command line + by trying the command <userinput><command>ncl</command> + <parameter>-noask</parameter></userinput>. This should + open an instance of the <application>NEdit</application> + editor. If <command>ncl</command> is not available, you + might be using an older version of + <application>NEdit</application>. In that case, you should + either upgrade to a more recent version, or you have to use + the option <guilabel>User defined editor</guilabel> from the + <guilabel>Options</guilabel> dialog.</para> + </tip> + </section> + + <section id="editor-setup-xemacs"> + <title><application>XEmacs</application></title> + + <para><application>XEmacs</application> works well with + &kdvi;. The actual behavior of + <application>XEmacs</application> depends largely on the + configuration. As usual, you can customize + <application>XEmacs</application> completely, if you are willing + to fight your way through Lisp code.</para> + + <para>&kdvi; uses the program <command>gnuclient</command> to + remote control <application>XEmacs</application>.</para> + <important> + <para>The program <command>gnuclient</command> requires that + <application>XEmacs</application> is running, and that the + program <application>gnuserv</application> is started inside + <application>XEmacs</application>. Inverse search will not + work unless you have started both + <application>XEmacs</application> and + <application>gnuserv</application>.</para> + </important> + + <para>To start the <application>gnuserv</application> program, you can + do one of the following:</para> + <itemizedlist> + <listitem> + <para>In <application>XEmacs</application>, start + <application>gnuserv</application> by typing +<userinput><keycombo action="seq"><keycap>M</keycap><keycap>X</keycap></keycombo> + <command>gnuserv-start</command></userinput></para> + </listitem> + <listitem> + <para>Add the line +<programlisting> +(gnuserv-start) +</programlisting> + to your <filename>.xemacs</filename> file. If you use a + more recent version of <application>XEmacs</application>, + <filename class="directory">.xemacs</filename> will be a + folder. In that case, you should append the line to the + file <filename>.xemacs/init.el</filename>. Restart + <application>XEmacs</application></para> + </listitem> + </itemizedlist> + + <para>If you don't want to open a new frame for each editor + call, and want the frame to be auto-raised, set <quote>Gnuserv + Frame</quote> to <quote>Use selected frame</quote>, and add the + <function>raise-frame</function> function to <quote>Visit + Hook</quote>. Do <userinput><keycombo action="seq"><keycap>M</keycap><keycap>x</keycap></keycombo> + <command>customize-group</command> <keycap>RET</keycap> + <command>gnuserv</command></userinput> to make these + settings.</para> + + <tip> + <itemizedlist> + <listitem> + <para>Make sure that <application>XEmacs</application> + is installed. Try to start <command>xemacs</command> + from the command line.</para> + </listitem> + <listitem> + <para>&kdvi; uses the command <application>gnuserv</application> + to remote control + <application>XEmacs</application>. Make sure that + <command>gnuclient</command> is available on the command + line by trying the command + <userinput><command>gnuclient</command> <parameter>Name + of a text file</parameter></userinput>. This should open + a new frame in the <application>XEmacs</application> + editor.</para> + </listitem> + <listitem> + <para>If <application>gnuserv</application> fails with an error + message like <computeroutput>unable to connect to + local</computeroutput>, make sure that + <application>XEmacs</application> is + running. Furthermore, make sure that + <application>gnuserv</application> is started by typing + <userinput><keycombo action="seq"><keycap>M</keycap><keycap>X</keycap></keycombo> + <command>gnuserv-start</command></userinput>.</para> + </listitem> + <listitem> + <para>If you don't want to open a new frame for each + editor call, and want the frame to be auto-raised, set + <quote>Gnuserv Frame</quote> to <quote>Use selected + frame</quote>, and add the <quote>raise-frame</quote> + function to <quote>Visit Hook</quote>. Do + <userinput><keycombo action="simul"><keycap>M</keycap><keycap>X</keycap></keycombo> + <command>customize-group</command> <keycap>RET</keycap> + <command>gnuserv</command></userinput> to make these + settings.</para> + </listitem> + </itemizedlist> + </tip> + </section> + + <section id="editor-setup-gvim"> + <title><application>VI iMproved</application> / &GUI;</title> + + <para>The <application>gvim</application> variant of the + <application>vi</application> editor supports inverse search very well. + No extra setup is required.</para> + </section> + </section> + </chapter> + + + <chapter id="forward-search"> + <title>Forward search</title> + + <para>The forward search functions allow you to jump from your + editor directly into the associated position of the &DVI; + file. Since forward search must be supported by your editor, only + <application>Emacs</application> and + <application>XEmacs</application> are currently supported. Other + editors will hopefully join in soon.</para> + + <para>To use forward search, you have to do the following:</para> + <itemizedlist> + <listitem> + <para>Set up your editor — this is described below.</para> + </listitem> + <listitem> + <para>Add source file information to your &DVI; file, ⪚ by + using the package <command>srcltx</command>. This has been + described in the section <link linkend="inverse-search-tex">Producing TeX files for inverse + search</link>.</para> + </listitem> + <listitem> + <para>If you use <application>Emacs</application> and + everything is properly set up, you just press + <userinput><keycombo action="simul">&Ctrl;<keycap>X</keycap></keycombo> <keycombo + action="simul">&Ctrl;<keycap>J</keycap> + </keycombo></userinput>, and &kdvi; pops up and jumps to the + place which corresponds to the place of the TeX file which you + are currently editing.</para> + </listitem> + </itemizedlist> + + <section id="forward-search-editor"> + <title>Setting up your editor for forward search</title> + + <section id="forw-editor-setup-emacs"> + <title><application>Emacs</application></title> + + <para>In order to use forward search in + <application>Emacs</application>, follow these steps:</para> + + <itemizedlist> + <listitem> + <para>Download the following + <application>Emacs</application> script, + <ulink url="kdvi-search.el"> + <filename>kdvi-search.el</filename> </ulink> (press + &Shift; and &LMB; the filename to download) and store + it in a place where <application>Emacs</application> + can access it — we recommend a folder + <filename class="directory">emacs-scripts</filename>.</para> + </listitem> + <listitem> + <para>Add the lines +<programlisting> +(add-to-list 'load-path (expand-file-name "~/emacs-scripts/")) +(require 'kdvi-search) +(add-hook 'LaTeX-mode-hook (lambda () (local-set-key "\C-x\C-j" 'kdvi-jump-to-line))) +(add-hook 'tex-mode-hook (lambda () (local-set-key "\C-x\C-j" 'kdvi-jump-to-line))) +</programlisting> + to your <filename>.emacs</filename> file. Restart + <application>Emacs</application>.</para> + </listitem> + + <listitem> + <para>Open <application>Emacs</application>, load a + TeX file, produce the corresponding &DVI; file, and either + enter the command <userinput><keycombo action="simul"><keycap>M</keycap><keycap>x</keycap> + </keycombo><command>kdvi-jump-to-line</command></userinput> + or press <userinput><keycombo action="seq"><keycombo + action="simul">&Ctrl;<keycap>X</keycap></keycombo> + <keycombo action="simul">&Ctrl;<keycap>J</keycap></keycombo> + </keycombo></userinput>. + It may happen that <application>Emacs</application> asks + you for the name of a <quote>master file</quote>. This is + useful if you use a TeX file which includes other files: + the master file is the top-level file which includes the + others. <application>Emacs</application> will perhaps also + ask to save the name of the master file <quote>as a local + variable</quote>, &ie; as a comment at the very end of the + file. Type either <userinput>yes</userinput> or + <userinput>no</userinput> to continue.</para> + </listitem> + </itemizedlist> + + <tip> + <itemizedlist> + <listitem> + <para>Make sure that <application>Emacs</application> is + installed. Try to start <command>emacs</command> from + the command line.</para> + </listitem> + <listitem> + <para>If <application>Emacs</application> fails to start + &kdvi;, you can find its output in the Buffer + <guilabel>kdvi-output</guilabel>.</para> + </listitem> + </itemizedlist> + </tip> + </section> + + <section id="forw-editor-setup-kile"> + <title><application>Kile</application></title> + <para>If you use Kile, no further setup is necessary. + </para> + </section> + + <section id="forw-editor-setup-xemacs"> + <title><application>XEmacs</application></title> + + <para>To set up <application>XEmacs</application>, follow the + steps for <application>Emacs</application> <link + linkend="forw-editor-setup-emacs">above</link>, but modify + your <filename>.xemacs</filename> rather than your + <filename>.emacs</filename> file. If you use a very recent + version of <application>XEmacs</application>, <filename + class="directory">.xemacs</filename> may be a folder. In + that case, append the lines to + <filename>.xemacs/init.el</filename>. + </para> + </section> + + </section> + + </chapter> + + <chapter id="preferences"> + <title>The <guilabel>Preferences</guilabel> dialog</title> + <anchor id="opts"></anchor> + + <para>The <guilabel>Preferences</guilabel> dialog can be reached + by choosing <guimenuitem>DVI Options</guimenuitem> in the + <guimenu>Settings</guimenu> menu.</para> + + <para>The dialog consists of two tabs, <guilabel>Fonts</guilabel> + and <guilabel>Rendering</guilabel>.</para> + + <sect1 id="opt-fonts"> + <title><guilabel>Fonts</guilabel> Options</title> + + <para> + Traditionally, the TeX typsetter uses fonts that are generated + by the <command>MetaFont</command> program. These fonts are + stored in the PK format. While a carefully configured + <command>MetaFont</command> system produces printouts of + highest quality, its configuration requires serious expertise, + <command>MetaFont</command> is not very good at producing fonts + suitable for computer displays, and there are only few + <command>MetaFont</command> fonts available for Asian + languages. + </para> + + <para> + To overcome these problems, newer TeX installations therefore + include fonts that are stored in the "PostScript Type 1" + format, which is a widely used font format in electronic + publishing. &kdvi; is able to use both font formats. + </para> + + <para> + The following picture shows the font options dialog of &kdvi; + that can be used to control &kdvi;'s use of the various font + formats. + </para> + + <screenshot> + <screeninfo>The <guilabel>Fonts</guilabel> tab</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="optionrequester1.png" format="PNG"></imagedata> + </imageobject> + <textobject> + <phrase>The <guilabel>Fonts</guilabel> tab</phrase> + </textobject> + </mediaobject> + </screenshot> + + <variablelist> + <varlistentry> + <term><guilabel>Use font hinting for Type 1 fonts, if available</guilabel> </term> + <listitem> + <para> + PostScript "Type 1" often contain "font hints", + i.e. additional information that is supposed to + help software produce better quality output on + computer screens. The quality of the font hints + varies from font to font, and you should experiment + to see if enabling this option gives better results. + </para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + + <sect1 id="opt-rendering"> + <title><guilabel>&DVI; specials</guilabel> Options</title> + + <para> + &kdvi; supports a large number of extensions to the original + &DVI; format, e.g. hyperlinks, graphic file inclusion or + embedded source file information. These extensions are known as + "&DVI; specials". A full account of specials supported by + &kdvi; can be found in <ulink url="KDVI-features.dvi">this + document</ulink>. + </para> + + <para> + The &DVI; specials dialog help you to configure support for + some specials. </para> + + <screenshot> + <screeninfo>The <guilabel>Rendering</guilabel> tab</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="optionrequester2.png" + format="PNG"></imagedata> + </imageobject> + <textobject> + <phrase>The <guilabel>Rendering</guilabel> tab</phrase> + </textobject> + </mediaobject> + </screenshot> + + <variablelist> + <varlistentry> + <term><guilabel>Show PostScript specials</guilabel></term> + <listitem> + <para>If this option is checked, &kdvi; will display + &PostScript; graphics which are embedded into the &DVI; + file. You probably want to set this option.</para> + + <para>If an external &PostScript; file could not be found, + &kdvi; will draw a red warning box in its + place. Unfortunately, rendering &PostScript; graphics is + very slow in the current version of &kdvi;. We will + improve on the speed in later versions. If this option is + off, &kdvi; will either draw a gray box as a placeholder + for the graphics, or it will leave the space blank.</para> + + <note> + <para>There is no standard way to embed &PostScript; + graphics into a &DVI; file. It may therefore happen that + &kdvi; cannot properly display a graphic which works + fine with other programs. Older versions of + <command>xdvi</command> and <command>dvips</command> + support the execution of external commands. This is a + bad security risk and therefore deliberately not + implemented in &kdvi;. Technical information about + supported ways to include &PostScript; can be found in + the document + <filename>KDVI-features.dvi</filename>.</para> + </note> + + </listitem> + </varlistentry> + + + <varlistentry> + <term><guilabel>Editor for inverse search</guilabel></term> + <listitem> + <para>If you intend to use <link linkend="inverse-search">inverse search</link>, a + very useful feature if you write TeX documents yourself, + you have to specify which editor you are going to use, and + how this editor can be started by &kdvi;. In the example + shown, the user has opted for the + <application>NEdit</application> editor. If you use one of + the pre-configured editors from the + <guilabel>Editor</guilabel> combobox, then you don't have + to do anything else. If you whish to use a different + editor, chose <guilabel>User-defined editor</guilabel> + from the <guilabel>Editor</guilabel> combobox and enter + the command line which will be used to start your + editor. Use the placeholders <token>%f</token> and + <token>%l</token> which will be replaced with the name of + the TeX file, and the line of the TeX file, + respectively.</para> + + <para>If you use an editor which is not supported, please + send us an email at <email>kebekus@kde.org</email> and tell us + about the command line you use and how you have configured + your editor.</para> + </listitem> + </varlistentry> + </variablelist> + + </sect1> + </chapter> + + <chapter id="faq"> + <title>Frequently asked questions</title> + + <qandaset> + <qandaentry> + <question id="fontgen"> + <para>What happens when &kdvi; displays the message + <computeroutput>KDVI is currently generating bitmap + fonts</computeroutput>, and why does + the procedure take so long?</para> + </question> + <answer> + <para>Many of the fonts which are typically used in a TeX + document must be generated by the MetaFont system. Metafont + is a language similar to TeX (included in most TeX + distributions) which takes a description of the font + outline, and produces a rasterized version (<literal + role="extension">.pk</literal> file) of the font which can + then be send to a printer or be used in a previewing program + like &kdvi;. Metafont goes out of its way to produce the + best possible output for your printer. For instance, it + knows that a pixel of an inkjet printer is a roundish blot, + and that nearby pixels tend to smear into each other. In + contrast, a pixel on a laser printer is rectangular, but an + isolated pixel is very often not rendered at all.</para> + + <para>Generating such highly optimized bitmap fonts is + naturally rather time-consuming, in particular since typical + TeX documents use a large number of different fonts. We can + only ask for your patience. To ease the matter somewhat, + most distributions of TeX store the <literal + role="extension">.pk</literal> files for a limited time, + ⪚ 100 days. Therefore, if you access the same document + more than once, the <literal role="extension">.pk</literal> + files will be reused.</para> + </answer> + </qandaentry> + + <qandaentry> + <question id="mfmodes"> + <para>What is a MetaFont Mode?</para> + </question> + <answer> + <para>In order to produce bitmap fonts which are optimized + for your printer (see the answer to the first question), + Metafont comes with a database of printing engines — look + for a file called <filename>modes.mf</filename>. A Metafont + Mode is just the name of a database entry. For example, the + name <quote>ljfour</quote> refers to the entry in the + database that describes a &Hewlett-Packard; LaserJet 4 + printer. A MetaFont Mode is usually followed by a number, + the resolution. The LaserJet, for instance, can print in both + 300 and 600 dots per inch. Thus, <quote>ljfour/600</quote> + would be a full description.</para> + </answer> + </qandaentry> + + </qandaset> + </chapter> + + + <chapter id="credits-and-license"> + <title>Credits and Licenses</title> + + <para>&kdvi;</para> + + <para>&kdvi; is based on based on the stand-alone-program &kdvi; + 0.4.3 by Markku Hihnala. That program is in turn based on + <application>xdvi</application> version 18f which has many + authors.</para> + + <para>Documentation is copyright 2001-2004, Stefan Kebekus + <email>kebekus@kde.org</email></para> + + <!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underGPL; +&underFDL; + + </chapter> + +&documentation.index; + +</book> +<!-- +Local Variables: +mode: sgml +sgml-omittag: nil +sgml-shorttag: t +End: +--> + diff --git a/doc/kdvi/kdvi-search.el b/doc/kdvi/kdvi-search.el new file mode 100644 index 00000000..d08dd07e --- /dev/null +++ b/doc/kdvi/kdvi-search.el @@ -0,0 +1,102 @@ +;;; (X)Emacs frontend to forward search with kdvi. See the section on +;;; FORWARD SEARCH in the kdvi manual for more information on forward +;;; search, and for an explanation how to use this script. This script +;;; is a modified version of the script "xdvi-search.el" by Stefan +;;; Ulrich <ulrich@cis.uni-muenchen.de>, version 2000/03/13. The +;;; modifications were performed by Stefan Kebekus +;;; <kebekus@kde.org>. Tested with Emacs 20.7.1 and Xemacs 21.4. +;;; +;;; This program is free software; you can redistribute it and/or +;;; modify it under the terms of the GNU General Public License as +;;; published by the Free Software Foundation; either version 2 of the +;;; License, or (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program; if not, write to the Free Software +;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +;;; 02110-1301, USA. +;;; +;;; Please report bugs or improvements, etc. via the "Report bug"-Menu +;;; of kdvi. +;;; + +(defvar kdvi-script "kdvi" + "*Name of start script for kdvi.") + +(defun kdvi-jump-to-line () + "Call kdvi-script to perform a `forward search' for current file and line number. +See contents of kdvi-script for details. +If AucTeX is used, the value of TeX-master-file is used as filename +for the master .dvi file; else, the return value of kdvi-master-file-name +is used (which see)." + (interactive) + (save-excursion + (save-restriction + (widen) + (beginning-of-line 1) + (let* (;;; current line in file, as found in the documentation + ;;; of emacs. Slightly non-intuitive. + (current-line (format "%d" (+ 1 (count-lines (point-min) (point))))) + ;;; name of the `main' .tex file, which is also used as .dvi basename: + (master-file (expand-file-name (if (fboundp 'TeX-master-file) + (TeX-master-file t) + (kdvi-get-masterfile (kdvi-master-file-name))))) + ;;; .dvi file name: + (dvi-file (concat (file-name-sans-extension master-file) ".dvi")) + ;;; current source file name. + (filename (expand-file-name (buffer-file-name)))) + (start-process "kdvi" + "kdvi-output" "kdvi" ;;; src-args + ;;; args for -sourceposition: + "--unique" (concat "file:" dvi-file "#src:" current-line filename) + ))))) + +(defun kdvi-get-masterfile (file) + "Small helper function for AucTeX compatibility. +Converts the special value t that TeX-master might be set to +into a real file name." + (if (eq file t) + (buffer-file-name) + file)) + + +(defun kdvi-master-file-name () + "Emulate AucTeX's TeX-master-file function. +Partly copied from tex.el's TeX-master-file and TeX-add-local-master." + (if (boundp 'TeX-master) + TeX-master + (let ((master-file (read-file-name "Master file (default this file): "))) + (if (y-or-n-p "Save info as local variable? ") + (progn + (goto-char (point-max)) + (if (re-search-backward "^\\([^\n]+\\)Local Variables:" nil t) + (let* ((prefix (if (match-beginning 1) + (buffer-substring (match-beginning 1) (match-end 1)) + "")) + (start (point))) + (re-search-forward (regexp-quote (concat prefix "End:")) nil t) + (if (re-search-backward (regexp-quote (concat prefix "TeX-master")) start t) + ;;; if TeX-master line exists already, replace it + (progn + (beginning-of-line 1) + (kill-line 1)) + (beginning-of-line 1)) + (insert prefix "TeX-master: " (prin1-to-string master-file) "\n")) + (insert "\n%%% Local Variables: " +;;; mode is of little use without AucTeX ... +;;; "\n%%% mode: " (substring (symbol-name major-mode) 0 -5) + "\n%%% TeX-master: " (prin1-to-string master-file) + "\n%%% End: \n")) + (save-buffer) + (message "(local variables written.)")) + (message "(nothing written.)")) + (set (make-local-variable 'TeX-master) master-file)))) + + +(provide 'kdvi-search) + diff --git a/doc/kdvi/optionrequester1.png b/doc/kdvi/optionrequester1.png Binary files differnew file mode 100644 index 00000000..c03159f1 --- /dev/null +++ b/doc/kdvi/optionrequester1.png diff --git a/doc/kdvi/optionrequester2.png b/doc/kdvi/optionrequester2.png Binary files differnew file mode 100644 index 00000000..13d252e3 --- /dev/null +++ b/doc/kdvi/optionrequester2.png diff --git a/doc/kdvi/srcltx.sty b/doc/kdvi/srcltx.sty new file mode 100644 index 00000000..3e2d61a3 --- /dev/null +++ b/doc/kdvi/srcltx.sty @@ -0,0 +1,184 @@ + +% ------------------------------------------------------------------------ +% File: srcltx.sty +% ========== +% +% Version 1.002 1999 Sep 3 (modified to change \everypar) +% by David Carlisle +% +% Version 1.001 1998 Dec 23 (modified to change \output) +% by Berthold Horn +% +% This package was originally written by Aleksander Simonic (the +% author of WinEdt Shell) to implement a source file tracking and +% DVI "SRC" specials for LaTeX. +% +% This package comes with no guarantees and no reserved rights. +% You can use or modify this file at your own risk. +% ************************************************************************ +% NOTE: TeX commands are case sensitive. You have to use uppercase +% \Input to take advantage of this package +% +% This package supports nested \Input commands... +% File extension should be specified in \Input! +% +% This file should be placed in a directory where your LaTeX is +% looking for inputs (eg. ...\localtexmf\tex for MiKTeX). +% +% If you are writing a book with WinEdt and LaTeX simply +% include this file and use \include{mychapter} command... +% This way all the necessary specials for DVI Search and +% Inverse Search are inserted in your DVI File. +% +% WinEdt will be able to track Errors from your LOG file. +% +% ************************************************************************ +% +% Some TeX implementations (eg. MiKTeX 1.20 [or later]) can insert +% the SRC specials much better than any macro package. Consult your +% TeX documentation to see if it is better to leave the task to your +% TeX. You can still use the [inactive] version of this package to +% take advantage of the re-defined Input commands and thus allowing +% WinEdt to keep track of errors in included source files. +% +% MiKTeX inserts the SRC specials in the DVI file if you start +% [La]TeX with --src qualifier (see MiKTeX's Manual: +% ...\texmf\Doc\MiKTeX\MiKTeX.pdf for more info). +% +% ************************************************************************ +% +% * NOTE: Some TeX implementations add the file type to the "\jobname". +% In that case the definition of the "\MainFile" should be modified to: +% +% \def\MainFile{\jobname} instead of \def\MainFile{\jobname.tex}. +% +% ************************************************************************ +% +% *** Example - Your LaTeX thesis document may look like this: +% +%\documentclass[12pt]{report} +%\usepackage[centertags]{amstex} +%\usepackage{thesis,newlfont,amsthm} +%\usepackage[active]{srcltx} +%%No src specials are written when loading the package by +%%\usepackage[inactive]{srcltx} +% +% .... Preamble .... +% +%\begin{document} +% +% .... Title, Author etc. .... +% +%\WinEdt{?0000} % Do not process any Errors (Overful/Underful Boxes) +%\beforepreface +%\WinEdt{?1111} % Process All Types of Errors from here on +%\include{ABS} +%\include{ACK} +%\afterpreface +%\include{chapter0} +%\include{chapter1} +%\include{chapter2} +%\include{chapter3} +%\bibliographystyle{amsplain} +%\bibliography{xbib} +%\end{document} +% +% ------------------------------------------------------------------------ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{srcltx}[1999/10/11 v1.002 DVI Search] +\newif\ifSRCOK \SRCOKtrue +\DeclareOption{active}{\SRCOKtrue} +\DeclareOption{inactive}{\SRCOKfalse} +\ExecuteOptions{inactive} +\ProcessOptions +% ------------------------------------------------------------------------ +\newcount\PAGETOP +\newcount\LASTLINE +\global\PAGETOP=1 +\global\LASTLINE=-1 +\gdef\MainFile{\jobname.tex}% ".tex" needed for MiKTeX +\gdef\CurrentInput{\MainFile} +\newcount\INPSP +\global\INPSP=0 +\def\EJECT{\SRC\eject} +\def\WinEdt#1{\typeout{:#1}}% WinEdt LOG MODE and INPUT +% ------------------------------------------------------------------------ +%If your are using DVIWIN remove the \space from the definitions below... +\def\SRC{\ifSRCOK% + \ifnum\inputlineno>\LASTLINE% + \ifnum\LASTLINE<0% + \global\PAGETOP=\inputlineno% + \fi% + \global\LASTLINE=\inputlineno% + \ifnum\INPSP=0% + \ifnum\inputlineno>\PAGETOP% + \special{src:\the\inputlineno\space\CurrentInput}% + \fi% + \else% + \special{src:\the\inputlineno\space\CurrentInput}% + \fi% + \fi% +\fi} +% ------------------------------------------------------------------------ +\def\PUSH#1{% +\SRC% +\ifnum\INPSP=0 \global\let\INPSTACKA=\CurrentInput \else% +\ifnum\INPSP=1 \global\let\INPSTACKB=\CurrentInput \else% +\ifnum\INPSP=2 \global\let\INPSTACKC=\CurrentInput \else% +\ifnum\INPSP=3 \global\let\INPSTACKD=\CurrentInput \else% +\ifnum\INPSP=4 \global\let\INPSTACKE=\CurrentInput \else% +\ifnum\INPSP=5 \global\let\INPSTACKF=\CurrentInput \else% + \global\let\INPSTACKX=\CurrentInput \fi\fi\fi\fi\fi\fi% +\gdef\CurrentInput{#1}% +\WinEdt{<+ \CurrentInput}% +\global\LASTLINE=0% +\ifSRCOK\special{src:1\CurrentInput}\fi% +\global\advance\INPSP by 1} +% +\def\POP{% +\ifnum\INPSP>0 \global\advance\INPSP by -1 \fi% +\ifnum\INPSP=0 \global\let\CurrentInput=\INPSTACKA \else% +\ifnum\INPSP=1 \global\let\CurrentInput=\INPSTACKB \else% +\ifnum\INPSP=2 \global\let\CurrentInput=\INPSTACKC \else% +\ifnum\INPSP=3 \global\let\CurrentInput=\INPSTACKD \else% +\ifnum\INPSP=4 \global\let\CurrentInput=\INPSTACKE \else% +\ifnum\INPSP=5 \global\let\CurrentInput=\INPSTACKF \else% + \global\let\CurrentInput=\INPSTACKX \fi\fi\fi\fi\fi\fi% +\WinEdt{<-}% +\global\LASTLINE=\inputlineno% +\global\advance\LASTLINE by -1% +\SRC} +% ------------------------------------------------------------------------ +% Dummy Input: can be used as \INPUT{<file>.bbl} to collect \bibitems +\def\INPUT#1{\relax} +% ------------------------------------------------------------------------ +% Redefine the original \include command +\let\OldINCLUDE=\include +\def\include#1{%Always ".tex" file type! +\EJECT% +\PUSH{#1.tex}% +\OldINCLUDE{#1}% +\POP} +% ------------------------------------------------------------------------ +\def\Input#1{%Specify File Extension! +\PUSH{#1}% +\input #1% +\POP} +% ------------------------------------------------------------------------ +% Note that these have been defined to concatenate the \SRC with +% whatever those token lists did before, just in case they were not +% empty token lists. Of course, later definitions may undo all this... +\let\originalxxxeverypar\everypar +\newtoks\everypar +\originalxxxeverypar{\the\everypar\expandafter\SRC} +%\everypar\expandafter{\the\everypar\expandafter\SRC} +% ??? Remove the following line if you encounter problems: +\everymath\expandafter{\the\everymath\expandafter\SRC} +% ------------------------------------------------------------------------ +% Redefine the \bibliography command: +\let\zzzxxxbibliography=\bibliography +\def\bibliography#1{\PUSH{\jobname.bbl}\zzzxxxbibliography{#1}\POP} +%------------------------------------------------------------------------ +% Modification to output routine to turn off \SRC while \output is active +\output\expandafter{\expandafter\SRCOKfalse\the\output} +%------------------------------------------------------------------------ diff --git a/doc/kdvi/srctex.sty b/doc/kdvi/srctex.sty new file mode 100644 index 00000000..26ecd74b --- /dev/null +++ b/doc/kdvi/srctex.sty @@ -0,0 +1,146 @@ +% ------------------------------------------------------------------------ +% File: srctex.sty +% ========== +% +% Version 1.002 1999 Sep 3 (modified to change \everypar) +% by David Carlisle +% +% Version 1.001 1998 Dec 23 (modified to change \output) +% by Berthold Horn +% +% This package was originally written by Aleksander Simonic (the +% author of WinEdt Shell) to implement a source file tracking and +% DVI "SRC" specials for TeX. +% +% This package comes with no guarantees and no reserved rights. +% You can use or modify this file at your own risk. +% ************************************************************************ +% NOTE: TeX commands are case sensitive. You have to use uppercase +% \Input to take advantage of this package +% +% This package supports nested \Input commands... +% File extension should be specified in \Input! +% +% This file should be placed in a directory where your TeX is +% looking for inputs (eg. ...\localtexmf\tex for MiKTeX). +% +% ************************************************************************ +% +% Some TeX implementations (eg. MiKTeX 1.20 [or later]) can insert +% the SRC specials much better than any macro package. Consult your +% TeX documentation to see if it is better to leave the task to your +% TeX. You can still use the [inactive] version of this package to +% take advantage of the re-defined Input commands and thus allowing +% WinEdt to keep track of errors in included source files. +% +% MiKTeX inserts the SRC specials in the DVI file if you start +% TeX with --src qualifier (see MiKTeX's Manual: +% ...\texmf\Doc\MiKTeX\MiKTeX.pdf for more info). +% +% ************************************************************************ +% +% If you are writing a book with WinEdt Shell and TeX simply +% include this file and use "\Input{my_chapter}" instead of +% "\input my_chapter". This way all the necessary specials for +% DVI Search and Inverse Search are inserted in your DVI File. +% +% WinEdt will be able to track Errors from your LOG file. +% +% To remove SRC Specials from the dvi file compile the source +% after inserting \SRCOKfalse immediately after +% the \usepackage{srctex} directive... +% +% This package supports nested \Input commands... +% File extension should be specified in \Input! +% +% ************************************************************************ +% +% * NOTE: Some TeX implementations add the file type to the "\jobname". +% In that case the definition of the "\MainFile" should be modified to: +% +% \def\MainFile{\jobname} instead of \def\MainFile{\jobname.tex}. +% +% ************************************************************************ +\def\typeout#1{\message{^^J}\message{#1}\message{^^J}} +% +\newif\ifSRCOK \SRCOKtrue +\newcount\PAGETOP +\newcount\LASTLINE +\global\PAGETOP=1 +\global\LASTLINE=-1 +\def\EJECT{\SRC\eject} +\def\WinEdt#1{\typeout{:#1}}% WinEdt LOG MODE and INPUT +\gdef\MainFile{\jobname.tex}% ".tex" needed for MiKTeX +\gdef\CurrentInput{\MainFile} +\newcount\INPSP +\global\INPSP=0 +% ------------------------------------------------------------------------ +%If your are using DVIWIN remove the \space from the definitions below... +\def\SRC{\ifSRCOK% + \ifnum\inputlineno>\LASTLINE% + \ifnum\LASTLINE<0% + \global\PAGETOP=\inputlineno% + \fi% + \global\LASTLINE=\inputlineno% + \ifnum\INPSP=0% + \ifnum\inputlineno>\PAGETOP% + \special{src:\the\inputlineno\space\CurrentInput} + \fi% + \else% + \special{src:\the\inputlineno\space\CurrentInput} + \fi% + \fi% +\fi} +% ------------------------------------------------------------------------ +\def\PUSH#1{% +\SRC% +\ifnum\INPSP=0 \global\let\INPSTACKA=\CurrentInput \else% +\ifnum\INPSP=1 \global\let\INPSTACKB=\CurrentInput \else% +\ifnum\INPSP=2 \global\let\INPSTACKC=\CurrentInput \else% +\ifnum\INPSP=3 \global\let\INPSTACKD=\CurrentInput \else% +\ifnum\INPSP=4 \global\let\INPSTACKE=\CurrentInput \else% +\ifnum\INPSP=5 \global\let\INPSTACKF=\CurrentInput \else% + \global\let\INPSTACKX=\CurrentInput \fi\fi\fi\fi\fi\fi% +\gdef\CurrentInput{#1}% +\WinEdt{<+ \CurrentInput}% +\global\LASTLINE=0% +\ifSRCOK\special{src:1\CurrentInput}\fi% +\global\advance\INPSP by 1} +% +\def\POP{% +\ifnum\INPSP>0 \global\advance\INPSP by -1 \fi% +\ifnum\INPSP=0 \global\let\CurrentInput=\INPSTACKA \else% +\ifnum\INPSP=1 \global\let\CurrentInput=\INPSTACKB \else% +\ifnum\INPSP=2 \global\let\CurrentInput=\INPSTACKC \else% +\ifnum\INPSP=3 \global\let\CurrentInput=\INPSTACKD \else% +\ifnum\INPSP=4 \global\let\CurrentInput=\INPSTACKE \else% +\ifnum\INPSP=5 \global\let\CurrentInput=\INPSTACKF \else% + \global\let\CurrentInput=\INPSTACKX \fi\fi\fi\fi\fi\fi% +\WinEdt{<-}% +\global\LASTLINE=\inputlineno% +\global\advance\LASTLINE by -1% +\SRC} +% ------------------------------------------------------------------------ +% Dummy Input: can be used as \INPUT{<file>.bbl} to collect \bibitems +\def\INPUT#1{\relax} +% ------------------------------------------------------------------------ +\def\Input#1{%Specify File Extension! +\SRC% +\PUSH{#1}% +\input #1% +\POP% +\SRC} +% ------------------------------------------------------------------------ +% Note that these have been defined to concatenate the \SRC with +% whatever those token lists did before, just in case they were not +% empty token lists. Of course, later definitions may undo all this... +\let\originalxxxeverypar\everypar +\newtoks\everypar +\originalxxxeverypar{\the\everypar\expandafter\SRC} +%\everypar\expandafter{\the\everypar\expandafter\SRC} +% ??? Remove the following line if you encounter problems: +\everymath\expandafter{\the\everymath\expandafter\SRC} +%------------------------------------------------------------------------ +% Modification to output routine to turn off \SRC while \output is active +\output\expandafter{\expandafter\SRCOKfalse\the\output} +%------------------------------------------------------------------------ diff --git a/doc/kgamma/Makefile.am b/doc/kgamma/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kgamma/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kgamma/index.docbook b/doc/kgamma/index.docbook new file mode 100644 index 00000000..93be5949 --- /dev/null +++ b/doc/kgamma/index.docbook @@ -0,0 +1,234 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" + "dtd/kdex.dtd" [ + <!ENTITY kgamma '<application>KGamma</application>'> + <!ENTITY kappname "&kgamma;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE"><!-- change language only here --> +]> + +<!-- ................................................................ --> + +<!-- The language must NOT be changed here. --> +<book lang="&language;"> +<title>The KGamma Handbook</title> + +<bookinfo> +<authorgroup> +<author> +<firstname>Michael</firstname> +<surname>v.Ostheim</surname> +<affiliation> +<address><email>ostheimm@users.berlios.de</email></address> +</affiliation> +</author> +</authorgroup> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> +<copyright> +<year>2001, 2002, 2003</year> +<holder>Michael v.Ostheim</holder> +</copyright> +<!-- Translators: put here the copyright notice of the translation --> + +<legalnotice>&FDLNotice;</legalnotice> +<date>28/08/2003</date> +<releaseinfo>1.00.20</releaseinfo> + +<!-- Abstract about this handbook --> +<abstract> +<para>&kgamma; is a simple tool for monitor gamma correction.</para> +</abstract> + +<keywordset> +<keyword>KDE</keyword> +<keyword>KGamma</keyword> +<keyword>Monitor</keyword> +<keyword>Calibration</keyword> +<keyword>Gamma</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> + +<para>This document describes &kgamma; version 1.0.2 (KDE 3.2)</para> +<para>&kgamma; is a tool for monitor gamma correction. With proper gamma +settings, your display (websites, images, etc.) will look the same on your +monitor as on other monitors.</para> +<para>&kgamma; allows you to alter the monitor's gamma correction of +XFree86. But that's not all to do. For good results you have to set the +correct brightness, contrast and color balance of your monitor. This +may be difficult and you have to repeat every step several times. +For perfect results you need really good (and expensive) hardware.</para> +<para>This are system settings, please do not use &kgamma; to manipulate your +image files.</para> +</chapter> + +<chapter id="using-kgamma"> +<title>Using KGamma</title> +<sect1 id="Setting-Gamma"> +<title>Setting Gamma Correction</title> +<para>Use the four sliders to define the gamma correction either as a single +value, or separately for the red, green and blue components. The XFree86 +default setting for gamma is 1.00 (Mac 1.80, WinXX 2.20). The test images help +you to find proper settings.</para> +<para>To store the gamma settings system wide, enable the option 'Store +settings to XF86Config'. The system settings will be restored at next XFree86 +startup. You need root access to use this option. Use this if you want to +correct the gamma settings for all users and graphical environments on this +machine.</para> +<para>To store the gamma settings to your personal KDE configuration, do not +enable that option. The user settings will be restored at next KDE startup and +replace temporary the system gamma settings. The system settings are not removed by +that and will be restored at next XFree86 startup.</para> +<para>On multi head systems, select the screen you want to alter with the combo +box. This will also work with xinerama enabled. If you want to set all screens +to the same gamma values, enable the 'Sync screens' option. On systems with only +one screen this option will take no effect.</para> +</sect1> + +<sect1 id="Gray-Scale"> +<title>Gray Scale Test Image</title> +<para>You should be able to see the following:</para> + +<itemizedlist> +<listitem> +<para>A gray scale with 20 different sections</para> +</listitem> +<listitem> +<para>The darkest section pure black</para> +</listitem> +<listitem> +<para>The lightest section pure white</para> +</listitem> +<listitem> +<para>No hint of any color in the gray tones</para> +</listitem> +</itemizedlist> + +<para>If you can't see all of the 20 sections, use your monitors contrast settings +or the "Gamma" slider of &kgamma; to correct this. If black is not pure black, +try to darken the monitor, if white is not pure white, try to lighten +it. If you see any colors in the gray tones alter the color balance settings of +your monitor or the "Red", "Green" and "Blue" slider of &kgamma;.</para> +</sect1> + +<sect1 id="RGB-Scale"> +<title>RGB Scale Test Image</title> +<para> +You should be able to see three strips, each with 16 sections of red, +green or blue tones. The darkest sections should be pure black, the brightest +should be pure red, green or blue. If you don't see all sections of +a color strip, try to lighten or darken this color.</para> +</sect1> + +<sect1 id="CMY-Scale"> +<title>CMY Scale Test Image</title> +<para> +You should be able to see three strips, each with 11 sections of cyan, +magenta or yellow tones. The brightest sections should be pure white, the darkest +should be pure cyan, magenta or yellow.</para> + +<itemizedlist> +<listitem> +<para>If you can't see all cyan sections, try to lighten or darken red</para> +</listitem> +<listitem> +<para>If you can't see all magenta sections, try to lighten or darken green</para> +</listitem> +<listitem> +<para>If you can't see all yellow sections, try to lighten or darken blue</para> +</listitem> +</itemizedlist> +</sect1> + +<sect1 id="advanced"> +<title>Advanced Test Images</title> +<para> +The following three pictures shows you the abilities of your monitor at +three points of the gray spectrum. If you can't see all of the details, +don't be worry, or buy better hardware. +</para> +<sect2 id="dark-gray"> +<title>Dark Gray Test Image</title> +<para> +You should be able to see 10 different rectangles of dark gray within a +black box. The chart shows you 1% steps from black. +</para> +</sect2> +<sect2 id="mid-gray"> +<title>Mid Gray Test Image</title> +<para> +This picture shows you 11 gray rectangles within a 50% gray box. You should be +able to see all of the rectangles except the middle one. The rectangles represent +the steps from 45% to 55% gray. +</para> +</sect2> +<sect2 id="light-gray"> +<title>Light Gray Test Image</title> +<para> +You should be able to see 10 different rectangles of light gray within a white box. +The chart shows you 1% steps from white. +</para> +</sect2> +</sect1> + +</chapter> + +<chapter id="credits"> +<title>Credits and License</title> + +<para> +&kgamma; +</para> +<para> +Program copyright 2001, 2002, 3003 Michael v.Ostheim <email>ostheimm@users.berlios.de</email> +</para> + +<para> +Documentation copyright 2001, 2002, 2003 Michael v.Ostheim <email>ostheimm@users.berlios.de</email> +</para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL; <!-- FDL: do not remove. --> +&underGPL; <!-- GPL License --> +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +<para>&kgamma;'s home site is +<ulink url="http://kgamma.berlios.de/index2.php">http://kgamma.berlios.de/index2.php</ulink> +</para> + +<sect1 id="compilation"> +<title>Compilation and Installation</title> + +<para> +In order to compile and install &kgamma; on your system, type the following in the base +folder of the &kgamma; distribution: +<screen> +<prompt>%</prompt> <userinput><command>./configure</command></userinput> +<prompt>%</prompt> <userinput><command>make</command></userinput> +<prompt>%</prompt> <userinput><command>make install</command></userinput> +</screen> +</para> + +</sect1> +</appendix> + +&documentation.index; +</book> +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: +--> diff --git a/doc/kghostview/Makefile.am b/doc/kghostview/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kghostview/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kghostview/index.docbook b/doc/kghostview/index.docbook new file mode 100644 index 00000000..41258728 --- /dev/null +++ b/doc/kghostview/index.docbook @@ -0,0 +1,755 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" + "dtd/kdex.dtd" [ + <!ENTITY kappname "&kghostview;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE"><!-- change language only here --> +]> +<book lang="&language;"> + +<bookinfo> +<title>The &kghostview; Handbook</title> +<authorgroup> +<author> +<firstname>Pamela</firstname> +<surname>Roberts</surname> +<affiliation> +<address>&Pamela.Roberts.mail;</address> +</affiliation> +</author> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> +</authorgroup> + +<copyright> +<year>2001</year> <year>2002</year> +<holder>&Pamela.Roberts;</holder> +</copyright> + +<legalnotice>&FDLNotice;</legalnotice> + +<date>2006-02-28</date> +<releaseinfo>0.20</releaseinfo> + +<abstract> +<para>&kghostview; displays and prints &PostScript; (<literal +role="extension">.ps</literal>, <literal +role="extension">.eps</literal>) and Portable Document Format +(<literal role="extension">.pdf</literal>) files.</para> +<para>This document describes &kghostview; version 0.20</para> +</abstract> + +<keywordset> +<keyword>KDE</keyword> +<keyword>linux</keyword> +<keyword>postscript</keyword> +<keyword>ghostview</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> + +<para> +&kghostview; displays and prints &PostScript; (<literal +role="extension">.ps</literal>, <literal +role="extension">.eps</literal>) and Portable Document Format (<literal +role="extension">.pdf</literal>) files. It is a port to &kde; of Tim +Theisen's <application>Ghostview</application> program which uses Alladin +<application>Ghostscript</application> to view documents prepared in +<trademark class="registered">Adobe</trademark>'s &PostScript; page +description language. &PostScript; is the major page description language +for printing on &UNIX; systems and this application can be used to preview +material intended for printing or for reading documents online. +</para> + +<para> +You can use &kghostview; with all recent versions of +<application>Ghostscript</application>. Newer versions offer much +improved performance which you can take advantage of with &kghostview;. +</para> + +<para> +If a document does not conform to the <trademark +class="registered">Adobe</trademark> document structuring convention the +functionality of the viewer is limited. For example, if there is no +table of contents, skipping around the document and marking pages is not +possible. +</para> + +</chapter> + + +<chapter id="fundamentals"> +<title>Fundamentals</title> + +<para> +This section describes what you see in the main &kghostview; window, the +actions of the Toolbar buttons and how to use the Page List. +</para> + +<para> +You can open multiple instances of &kghostview; to view multiple +documents. The titlebar at the top of a window shows you the name of +the document in that window. +</para> + +<para> +The main area displays a page of the current document. If the page is +too large to fit inside the window, scrollbars are automatically added +to the sides of the display, although these can be disabled with the +<guimenu>Settings</guimenu> menu. +</para> +<para> +Note that the Toolbar and the Page List can be hidden with the <link +linkend="settings">Settings</link> menu options to give more space on +the screen for the content area. +</para> + +<para> +You can scroll up and down in a page with the <keysym>Up +Arrow</keysym> and <keysym>Down Arrow</keysym> keys, or use the +<menuchoice><guimenu>View</guimenu><guimenuitem>Read Up</guimenuitem></menuchoice> +(<keycap>PageUp</keycap>) and <menuchoice><guimenu>View</guimenu> +<guimenuitem>Read Down</guimenuitem></menuchoice> +(<keycap>PageDown</keycap>) options to scroll through the entire document. +</para> + +<para>The +<guibutton>Read Up</guibutton> and <guibutton>Read Down</guibutton> +-Toolbar buttons do what they say, or you can go +immediately to any page with a &LMB; click on the appropriate entry in +the Page List. +</para> + +<para> +If selected in the <guimenu>Settings</guimenu> menu a Page List will be +displayed at the left side of the window. This list has two columns: the +first may contain a flag indicating that the page has been marked, the +second contains the page numbers. You can use this page list to navigate +through the document or to mark pages for printing. +</para> + +<para> +You can toggle the <quote>page marked</quote> flag for the currently +displayed page with <keycombo +action="simul">&Ctrl;&Shift;<keycap>M</keycap></keycombo> or for +any page by &LMB; clicking on it in the Page List. You can also clear or +change your page marks using the context menu that is activated by +&RMB; clicking anywhere in the Page List area or by selecting the <link +linkend="menuedit">Edit</link> menu. +</para> + +</chapter> + +<chapter id="primary-menu-items"> +<title>The Menubar</title> + +<sect1 id="menufile"> +<title>The <guimenu>File</guimenu> Menu</title> + +<variablelist> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>O</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Open...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Open</action> a file. If a file +is currently being displayed it will be closed.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Open Recent</guimenuitem> +</menuchoice></term> +<listitem><para><action>Open</action> a file selected from a combo box of +recently opened files. If a file is currently being displayed it will be +closed.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Save As...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Save</action> the currently open file.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>P</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Print...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Print</action> the currently displayed document. +The Print dialog box will let you choose to print all or selected +(marked) pages.</para> </listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Document Info</guimenuitem> +</menuchoice></term> +<listitem><para><action>Display</action> some basic information about +the document.</para> </listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>Q</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Quit</guimenuitem> +</menuchoice></term> +<listitem><para><action>Close</action> down &kghostview;.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="menuedit"> +<title>The <guimenu>Edit</guimenu> Menu</title> + +<note> +<para> +You can also get this menu by &RMB; clicking anywhere in the Page List +area. +</para> +</note> + +<variablelist> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl;&Shift; +<keycap>M</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Mark Current Page</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggle the page marked +flag</action> for the current page.</para> </listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Edit</guimenu> +<guimenuitem>Mark All Pages</guimenuitem> +</menuchoice></term> +<listitem><para><action>Set the page marked +flag</action> for all pages of the document.</para> </listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Edit</guimenu> +<guimenuitem>Mark Even Pages</guimenuitem> +</menuchoice></term> +<listitem><para><action>Set the page marked +flag</action> for all even numbered pages in the document. Used in +conjunction with <guimenuitem>Mark Odd Pages</guimenuitem> or +<guimenuitem>Toggle Page Marks</guimenuitem> this provides a convenient way of +double-sided printing a document on a single sided printer</para> </listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Edit</guimenu> +<guimenuitem>Mark Odd Pages</guimenuitem> +</menuchoice></term> +<listitem><para><action>Set the page marked +flag</action> for all odd numbered pages in the document.</para> </listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Edit</guimenu> +<guimenuitem>Toggle Page Marks</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggle the page marked +flags</action> for all pages in the document.</para> </listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Edit</guimenu> +<guimenuitem>Remove Page Marks</guimenuitem> +</menuchoice></term> +<listitem><para><action>Clear the page marked +flags</action> for all pages in the document.</para></listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="view"> +<title>The <guimenu>View</guimenu> Menu</title> + +<variablelist> + +<varlistentry> +<term><menuchoice> +<shortcut> +<keycap>F5</keycap> +</shortcut> +<guimenu>View</guimenu> +<guimenuitem>Reload</guimenuitem> +</menuchoice></term> +<listitem><para><action>Re-render</action> the current document page.</para> +</listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycap>M</keycap></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Maximize</guimenuitem></menuchoice> +</term> +<listitem> +<para>This option maximizes the &kghostview; window.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul">&Ctrl;&Shift; +<keycap>F</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Full Screen Mode</guimenuitem></menuchoice> +</term> +<listitem> +<para>This option maximizes the &kghostview; window and the currently shown page. +Even the window decorations (titlebar &etc;) are temporarily removed. +To switch back to normal window mode, press the <keycap>ESC</keycap> key or +the shortcut <keycombo action="simul">&Ctrl;&Shift; +<keycap>F</keycap></keycombo> again, or open the context menu with a &RMB; click +and select <guimenuitem>Exit Full Screen Mode</guimenuitem>. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>View</guimenu> +<guimenuitem>Orientation</guimenuitem> +</menuchoice></term> +<listitem><para><action>Change the orientation</action> of the +displayed page. You can choose between <guimenuitem>Auto</guimenuitem>, +<guimenuitem>Portrait</guimenuitem>, +<guimenuitem>Landscape</guimenuitem>, <guimenuitem>Upside +Down</guimenuitem> and <guimenuitem>Seascape</guimenuitem> which is like +<guimenuitem>Landscape</guimenuitem> but the other way up.</para> </listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>View</guimenu> +<guimenuitem>Paper Size</guimenuitem> +</menuchoice></term> +<listitem><para>Lets you view the document as if it +were printed on different <action>paper sizes</action> without changing the +scale. You should normally choose <guimenuitem>Auto</guimenuitem>.</para> +</listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl;<keycap>+</keycap></keycombo> +</shortcut> +<guimenu>View</guimenu> +<guimenuitem>Zoom In</guimenuitem> +</menuchoice></term> +<listitem><para><action>Increase the magnification</action> of the +document view.</para> </listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>View</guimenu> +<guimenuitem>Zoom</guimenuitem> +</menuchoice></term> +<listitem><para> +<action>Select a predefined zoom factor.</action> +</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>-</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Zoom Out</guimenuitem> +</menuchoice></term> +<listitem><para><action>Decrease the magnification</action> of the +document view.</para> </listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>View</guimenu> +<guimenuitem>Fit to Page Width</guimenuitem> +</menuchoice></term> +<listitem><para><action>Scale</action> the display so a page width fits +exactly across the main display area.</para> </listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycap>S</keycap></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Fit to Screen</guimenuitem> +</menuchoice></term> +<listitem><para><action>Scale</action> the display so the entire page fits +exactly across the main display area.</para> </listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>PageUp</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Previous Page</guimenuitem> +</menuchoice></term> +<listitem><para>View the <action>previous page</action> of the +document.</para> </listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>PageDown</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Next Page</guimenuitem> +</menuchoice></term> +<listitem><para>View the <action>next page</action> of the +document.</para> </listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>Home</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>First Page</guimenuitem> +</menuchoice></term> +<listitem><para><action>Go to the first page</action> of the +document.</para> </listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>End</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Last Page</guimenuitem> +</menuchoice></term> +<listitem><para><action>Go to the last page</action> of the +document.</para> </listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>View</guimenu> +<guimenuitem>Go to Page</guimenuitem> +</menuchoice></term> +<listitem><para><action>Go to a selected page</action> of the +document.</para> </listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycap>PageUp</keycap></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Read Up</guimenuitem> +</menuchoice></term> +<listitem><para><action>Scroll backwards</action> through the +document.</para> </listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycap>PageDown</keycap></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Read Down</guimenuitem> +</menuchoice></term> +<listitem><para><action>Scroll forwards</action> through the +document.</para> </listitem> </varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="settings"> +<title>The <guimenu>Settings</guimenu> Menu</title> + +<variablelist> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>M</keycap></keycombo></shortcut> +<guimenu>Settings</guimenu> +<guimenuitem>Show/Hide Menubar</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggles the menubar on/off.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show/Hide Toolbar</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggle the Toolbar display</action> on +and off.</para></listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show/Hide Statusbar</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggle the Status bar display</action> on +and off.</para></listitem> </varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul">&Ctrl;&Shift; +<keycap>F</keycap></keycombo></shortcut> +<guimenu>Settings</guimenu> +<guimenuitem>Full Screen Mode</guimenuitem></menuchoice> +</term> +<listitem> +<para>This option maximizes the &kghostview; window and the currently shown page. +Even the window decorations (titlebar &etc;) are temporarily removed. +To switch back to normal window mode, press the <keycap>ESC</keycap> key or +the shortcut <keycombo action="simul">&Ctrl;&Shift; +<keycap>F</keycap></keycombo> again, or open the context menu with a &RMB; click +and select <guimenuitem>Exit Full Screen Mode</guimenuitem>. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure Shortcuts...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a dialog for changing the shortcuts.</action> +Using this option you can change the standard key shortcut for &kghostview;'s commands +or create new ones.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure Toolbars...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a dialog for configuring the toolbar.</action> You +can add and remove toolbuttons for &kghostview;'s commands with this +option.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show/Hide Scrollbars</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggle the horizontal and vertical scrollbars</action> +on and off.</para></listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show Page List</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggle the Page List</action> +on and off.</para></listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show Page Labels</guimenuitem> +</menuchoice></term> +<listitem><para>If this is selected the <action>name (if any) of the +current page is displayed in the Status Bar</action>.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Watch File</guimenuitem> +</menuchoice></term> +<listitem><para>If this is selected the display will +<action>automatically update</action> if the document file +changes.</para></listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>No Flicker</guimenuitem> +</menuchoice></term> +<listitem><para> +If this is selected the display will start showing objects instantly as they are rendered, +otherwise the whole page is rendered off-screen and then displayed. +</para></listitem> </varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure &kghostview;...</guimenuitem> +</menuchoice></term> +<listitem><para>Brings up the &kghostview; +<link linkend="config-dialog"><action>configuration dialog</action> +box</link>.</para></listitem> </varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="help"> +<title>The <guimenu>Help</guimenu> Menu</title> + +&help.menu.documentation; + +</sect1> +</chapter> + +<chapter id="config-dialog"> +<title>Configuration</title> + +<para> +The configuration dialog box is accessed with the +<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure +&kghostview;...</guimenuitem></menuchoice> option. It has two pages; +<guilabel>General</guilabel> and <guilabel>Ghostscript +Configuration</guilabel> +</para> + +<sect1 id="general-settings"> +<title>General Settings</title> + +<para> +You can select <guilabel>Enable anti-aliasing of fonts and +images</guilabel> to get smoothly rendered text, but note that +anti-aliasing is memory intensive and slower than straightforward +rendering of fonts. Early versions of +<application>Ghostscript</application> could not perform anti-aliasing. +</para> + +<para> +Select <guilabel>Use platform fonts</guilabel> if you wish to use your +native system fonts rather than those that come with +<application>Ghostscript</application>. +</para> + +<para> +Turn <guilabel>Show Ghostscript messages in a separate box</guilabel> +on if you want to be informed of any output or error messages +generated by the <application>Ghostscript</application> interpreter. +</para> + +<para> +You can choose whether &kghostview; uses a +<guilabel>Monochrome</guilabel>, <guilabel>Grayscale</guilabel> or +<guilabel>Color</guilabel> <guilabel>Palette</guilabel> for the display. +</para> + +</sect1> + +<sect1 id="ghostscript-config"> +<title><application>Ghostscript</application> Configuration</title> + +<para> +In this dialog box page you can set the name of the +<application>Ghostscript</application> <guilabel>Interpreter:</guilabel> +executable and the <guilabel>Non-antialiasing arguments:</guilabel> and +the <guilabel>Antialiasing arguments:</guilabel> passed to it. The +default settings should be suitable for most systems. +</para> + +</sect1> + +</chapter> + +<chapter id="credits"> + +<title>Credits and License</title> + +<para> +&kghostview; +</para> + +<itemizedlist> +<title>Program Copyright:</title> +<listitem><para>&Mark.Donohoe; &Mark.Donohoe.mail; (original author) 1998 +</para></listitem> +<listitem><para>&David.Sweet; &David.Sweet.mail; +Maintainer 1999-2000 +</para></listitem> +<listitem><para>&Wilco.Greven; &Wilco.Greven.mail; +Current maintainer +</para></listitem> +<listitem><para>&David.Faure; &David.Faure.mail; (basis for +shell)</para> +</listitem> +<listitem><para>Daniel Duley <email>mosfet@kde.org</email> (port to +Kparts)</para> +</listitem> +<listitem><para>&Espen.Sand; &Espen.Sand.mail; (dialog boxes)</para> +</listitem> +</itemizedlist> + + +<para> +Documentation copyright 2001, 2002 &Pamela.Roberts; +&Pamela.Roberts.mail; +</para> + + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL; <!-- FDL: do not remove --> + +&underGPL; <!-- GPL License --> + + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +<para> +&kghostview; is part of the &kde; 3 project, details of which can be found at +<ulink url="http://www.kde.org">http://www.kde.org</ulink>. +</para> + +<para> +To use &kghostview;, you must have the <application>Ghostscript</application> +program as well as &kde; 3 installed on your machine. The +<application>Ghostscript</application> home page is at +<ulink url="http://www.cs.wisc.edu/~ghost/">http://www.cs.wisc.edu/~ghost/</ulink> +</para> + +<para> +Most distributions will include &kghostview;, but if you want to roll your own +the source code can be found in the &package; package on &kde-ftp;, the main +ftp site of the &kde; project.</para> + +<!-- +<para> +To see if a later version of &kghostview; has been released, you can +take a look in <ulink +url="http://apps.kde.com">http://apps.kde.com</ulink>. </para> +--> + +&install.compile.documentation; + +</appendix> + +&documentation.index; + +</book> +<!-- +Local Variables: +mode: sgml +sgml-omittag: nil +sgml-shorttag: t +End: +--> + diff --git a/doc/kiconedit/Makefile.am b/doc/kiconedit/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kiconedit/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kiconedit/index.docbook b/doc/kiconedit/index.docbook new file mode 100644 index 00000000..92bc8bc3 --- /dev/null +++ b/doc/kiconedit/index.docbook @@ -0,0 +1,1083 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kiconedit;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % English "INCLUDE" > <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> +<bookinfo> +<title>The &kiconedit; Manual</title> +<authorgroup> +<author> +<firstname>Thomas</firstname> +<surname>Tanghus</surname> +<affiliation> +<address>&Thomas.Tanghus.mail;</address> +</affiliation> +</author> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> + +</authorgroup> + +<copyright> +<year>1997</year> +<holder>&Thomas.Tanghus;</holder> +</copyright> +<copyright> +<year>2001</year><year>2003</year> +<holder>&Lauri.Watts;</holder> +</copyright> + +<legalnotice> +&FDLNotice; +</legalnotice> + +<date>2005-12-10</date> +<releaseinfo>3.5.0</releaseinfo> + +<abstract> +<para> +&kiconedit; is designed to help create icons for &kde; using the +standard icon palette. +</para> +</abstract> + +<keywordset> +<keyword>KDE</keyword> +<keyword>kdegraphics</keyword> +<keyword>KIconEdit</keyword> +<keyword>icon</keyword> +</keywordset> +</bookinfo> + +<chapter id="Introduction"> +<title>Introduction</title> + +<blockquote> +<attribution>&Thomas.Tanghus; +&Thomas.Tanghus.mail;</attribution> + +<para> +&kiconedit; is designed to help create icons for &kde; using the +standard icon palette. +</para> + +<para> +I hope you will find this program somehow useful and I would +appreciate any suggestions and comments. +</para> + +</blockquote> + +</chapter> + +<chapter id="onscreen-fundamentals"> +<title>Onscreen Fundamentals</title> + +<para> +In this section will be briefly described the Icon Editor user +interface. +</para> + +<para> +The Icon Editor window is separated in five areas: main toolbar, tools +toolbar, statusbar, color palette and the grid, where you paint the icon. +</para> + +<sect1 id="main-toolbar"> +<title>Main Toolbar</title> + +<variablelist> + +<varlistentry> +<term><guiicon>New</guiicon></term> +<listitem> +<para> +<action>Create a new icon.</action> If the current file has been +modified you will be asked if you want to save the changes. After that a +dialog will open where you can choose to create the icon from scratch or +from a template. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Open</guiicon></term> +<listitem> +<para> +<action>Open an existing icon file.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Save</guiicon></term> +<listitem> +<para> +<action>Save the currently open icon.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Print</guiicon></term> +<listitem> +<para> +<action>Print the icon.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Undo</guiicon></term> +<listitem><para>Undo the last action</para></listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Redo</guiicon></term> +<listitem><para>Redo the last action undone. If no actions have been +undone, this action is disabled.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Cut</guiicon></term> +<listitem> +<para> +<action>Cuts out the entire icon and put it onto the clipboard.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Copy</guiicon></term> +<listitem> +<para> +<action>Copies the entire icon to the clipboard.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Paste</guiicon></term> +<listitem> +<para> +<action>Paste the contents of the clipboard as a new image (if the +clipboard contains a valid icon).</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Zoom</guiicon></term> +<term><guiicon>Zoom In</guiicon></term> +<term><guiicon>Zoom Out</guiicon></term> +<listitem> +<para> +<action>Zoom to predefined zoom factor, zoom in or zoom out.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Resize</guiicon></term> +<listitem> +<para> +<action>Resize icon to width X height.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><action>GrayScale</action></term> +<listitem> +<para> +<action>Gray scale the icon image.</action> This may create colors not +conformant to the &kde; icon palette. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Show Grid</guiicon></term> +<listitem> +<para> +<action>Toggle grid on/off.</action> +</para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="tools-toolbar"> +<title>Tools Toolbar</title> + +<para> +This toolbar contains the tools you can use to manipulate the +icon. +</para> + +<variablelist> +<varlistentry> +<term><guiicon>Freehand</guiicon></term> +<listitem> +<para> +<action>Draw free hand.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Color Picker</guiicon></term> +<listitem> +<para> +Doesn't change the icon but <action>changes the current drawcolor to the +color clicked on.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Rectangle</guiicon></term> +<listitem> +<para> +<action>Draw a rectangle.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Filled Rectangle</guiicon></term> +<listitem> +<para> +<action>Draw a filled rectangle.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Circle</guiicon></term> +<listitem> +<para> +<action>Draw a circle.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Filled Circle</guiicon></term> +<listitem> +<para> +<action>Draw a filled circle.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Ellipse</guiicon></term> +<listitem> +<para> +<action>Draw an ellipse</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Filled Ellipse</guiicon></term> +<listitem> +<para> +<action>Draw a filled ellipse</action> (almost the same thing as drawing +a circle.) +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Spray</guiicon></term> +<listitem> +<para> +<action>Draws a randow dotted pattern like a spraycan.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Flood Fill</guiicon></term> +<listitem> +<para> +<action>Fill an area with the current color.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Line</guiicon></term> +<listitem> +<para> +<action>Draw a line.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Eraser (Transparent)</guiicon></term> +<listitem> +<para> +<action>Draw transparent (invisible).</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guiicon>Rectangular Selection</guiicon></term> +<term><guiicon>Circular Selection</guiicon></term> +<listitem> +<para> +<action>Select (mark) a part of the icon.</action> +</para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="grid"> +<title>Grid</title> + +<para> +The grid is where you manipulate the icon contents. +</para> +</sect1> + +<sect1 id="statusbar"> +<title>Statusbar</title> + +<para> +The status bar keeps you informed of current operations. From left to +right, it tells you the x,y coordinates of the pixel you are working on, +the size of the current canvas, the zoom factor, and the current number +of colors in the icon. +</para> + +</sect1> +</chapter> + +<chapter id="the-menu-entries"> +<title>The Menu Entries</title> + +<sect1 id="file"> +<title>The <guimenu>File</guimenu> Menu</title> + +<para> +The following functions are available from the <guimenu>File</guimenu> +menu: +</para> + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>New</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Lets you create a new icon</action>, either from a template or +by specifying the size. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>File</guimenu> +<guimenuitem>New Window</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Open a new Icon Editor window.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Open...</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Open an existing icon file.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>File</guimenu> +<guisubmenu>Open Recent</guisubmenu> +</menuchoice> +</term> +<listitem> +<para> +<action>Displays a list of recently opened icons to choose +from.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Save</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Save the currently open icon.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Save As...</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Save the currently open icon under a new name.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>P</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Print...</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Print the icon</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>W</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Close</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Close</action> &kiconedit;. +</para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="edit"> +<title>The <guimenu>Edit</guimenu> Menu</title> + +<para> +The <guimenu>Edit</guimenu> menu contains the following entries: +</para> + +<variablelist> + +<varlistentry> +<term><menuchoice><shortcut><keycombo +action="simul">&Ctrl;<keycap>Z</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem> +</menuchoice></term> +<listitem><para>Undo the last action</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;&Shift;<keycap>Z</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu><guimenuitem>Redo</guimenuitem></menuchoice></term> +<listitem><para>Redo the last action undone. If no actions have been +undone, this action is disabled.</para></listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>X</keycap></keycombo> +</shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Cut</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Cuts out the entire icon and put it onto the clipboard.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo> +</shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Copy</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Copies the entire icon to the clipboard.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>V</keycap></keycombo> +</shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Paste</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Paste the contents of the clipboard (if the clipboard contains a +valid icon).</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Edit</guimenu> +<guimenuitem>Paste as New</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Paste the contents of the clipboard as a new image into a new Icon Editor window (if the +clipboard contains a valid icon).</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Edit</guimenu> +<guimenuitem>Clear</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Clear the grid and fill it with transparent color.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>A</keycap></keycombo> +</shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Select All</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Marks the entire icon as selected.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><guimenu>Edit</guimenu><guimenuitem>Resize...</guimenuitem> +</menuchoice></term> +<listitem><para> +<action>Resize icon to width X height.</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><guimenu>Edit</guimenu><guimenuitem>GrayScale</guimenuitem> +</menuchoice></term> +<listitem><para><action>Gray scale the icon image.</action> This may +create colors not conformant to the &kde; icon palette.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="view"> +<title>The <guimenu>View</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>+</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Zoom In</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Magnify the view of the icon</action>. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut><keycombo action="simul"> +&Ctrl;<keycap>-</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Zoom Out</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Shrink the view icon to a smaller screen size</action> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>View</guimenu> +<guisubmenu>Zoom</guisubmenu> +</menuchoice> +</term> +<listitem> +<para>Zoom to a predefined zoom factor</para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="tools"> +<title>The <guimenu>Tools</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Freehand</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +Draw free hand. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><guimenu>Tools</guimenu><guimenuitem>Color +Picker</guimenuitem></menuchoice></term> +<listitem><para>Select a color from the screen to use as the +foreground color.</para></listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Rectangle</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +Draw a rectangle. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Filled Rectangle</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +Draw a filled rectangle. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Circle</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +Draw a circle. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Filled Circle</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +Draw a filled circle. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Ellipse</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +Draw an ellipse +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Filled Ellipse</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Draw a filled ellipse</action> (almost the same thing as drawing +a circle.) +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Spray</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +Draws a random dotted pattern like a spraycan. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Flood Fill</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +Fill an area with the current color. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Line</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +Draw a line. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Eraser (Transparent)</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Draw transparent (invisible).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><guimenu>Tools</guimenu> +<guimenuitem>Rectangular Selection</guimenuitem></menuchoice></term> +<term><menuchoice><guimenu>Tools</guimenu> +<guimenuitem>Circular Selection</guimenuitem></menuchoice></term> +<listitem><para><action>Select (mark) a part of the icon.</action> +</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="settings"> +<title>The <guimenu>Settings</guimenu> Menu</title> + +<variablelist> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Toolbars</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Toggle on and off the display of the toolbars.</action> +</para> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show/Hide Statusbar</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Toggle on and off the display of the status bar.</action> +</para> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show/Hide Grid</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +<action>Toggle on and off the grid.</action> +</para> +</listitem> +</varlistentry> +<varlistentry> +<term><menuchoice><guimenu>Settings</guimenu> +<guimenuitem>Configure Shortcuts...</guimenuitem> +</menuchoice></term> +<listitem><para>Opens a dialog where you can customize &kiconedit;'s +keyboard shortcuts.</para></listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure &kiconedit;...</guimenuitem> +</menuchoice> +</term> +<listitem> +<para> +Opens the &kiconedit; <link linkend="configuration">configuration +dialog</link> configuration dialog, described separately. +</para> +</listitem> +</varlistentry> + + +</variablelist> + +</sect1> + +<sect1 id="help"> +<title>The <guimenu>Help</guimenu> Menu</title> + +&help.menu.documentation; + +</sect1> +</chapter> + +<chapter id="configuration"> +<title>Configuration</title> + +<sect1> +<title>Configuring &kiconedit;</title> +<para>Selecting the <menuchoice><guimenu>Settings</guimenu> +<guimenuitem>Configure &kiconedit;...</guimenuitem></menuchoice> menu item will +open a configuration dialog with the tree tabs <guilabel>Icon Templates</guilabel>, +<guilabel>Background</guilabel> and <guilabel>Icon Grid</guilabel>.</para> + +<screenshot> +<screeninfo>&kiconedit; configuration dialog</screeninfo> +<mediaobject> +<imageobject><imagedata fileref="kiconedit-configuration.png" format="PNG"/></imageobject> +<textobject><phrase>&kiconedit; configuration dialog</phrase></textobject> +</mediaobject> +</screenshot> + +<sect2 id="icon-templates-tab"> +<title>The <guilabel>Icon Templates</guilabel> Tab</title> +<para><guilabel>Add...</guilabel>, <guilabel>Edit...</guilabel> and <guilabel>Remove</guilabel> +the templates for <guilabel>Standard File</guilabel>, <guilabel>Source File</guilabel>, +<guilabel>Compressed File</guilabel> &etc;.</para> +</sect2> +<sect2 id="background-tab"> +<title>The <guilabel>Background</guilabel> Tab</title> +<para>Select to <guibutton>Use color</guibutton> or to <guibutton>Use pixmap</guibutton> +as background. A <guilabel>Preview</guilabel> of your choice is displayed.</para> +</sect2> +<sect2 id="icon-grid-tab"> +<title>The <guilabel>Icon Grid</guilabel> Tab</title> +<para>Select to <guilabel>Paste transparent pixels</guilabel> or <guilabel>Show rulers</guilabel> +and set a <guilabel>Solid Color</guilabel> or a <guilabel>Checkerboard</guilabel> as +<guilabel>Transparency Display</guilabel>. +You can set the Checkerboard <guilabel>Size:</guilabel> to <guilabel>Small</guilabel>, +<guilabel>Medium</guilabel> or <guilabel>Large</guilabel> and choose <guilabel>Color 1:</guilabel> +and <guilabel>Color 2:</guilabel> of the checkerboard.</para> +</sect2> +</sect1> + +</chapter> + +<chapter id="credits-and-license"> +<title>Credits and Licenses</title> + +<para> +&kiconedit; +</para> + +<para> +Program copyright &Thomas.Tanghus; <email>tanghus@kde.org</email> +</para> + +<itemizedlist> +<title>Contributors</title> +<listitem> +<para> +John Califf <email>jcaliff@compuzone.net</email> +</para> +</listitem> +<listitem> +<para> +Laurent Montel <email>lmontel@mandrakesoft.com</email> +</para> +</listitem> +<listitem><para>Aaron Seigo &Aaron.J.Seigo.mail;</para></listitem> +<listitem><para>Nadeem Hassan <email>nhasan@nadmm.com</email> - Rewrote UI to use +XMLGUI, Lots of fixes and cleanup</para></listitem> +<listitem><para>Adrian Page <email>Adrian.Page@tesco.net</email> - Bug Fixes and &GUI; tidy up.</para></listitem> + + +</itemizedlist> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL; +&underGPL; + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +<sect1 id="how-to-obtain-the-icon-editor"> +<title>How to obtain &kiconedit;</title> + +&install.intro.documentation; + +</sect1> + +<sect1 id="compilation-and-installation"> +<title>Compilation and Installation</title> + +&install.compile.documentation; + +</sect1> + +<!-- +<sect1 id="configuration"> +<title>Configuration</title> + +</sect1> + +--> +</appendix> + + +</book> + +<!-- +Local Variables: +mode: sgml +sgml-indent-step:0 +sgml-indent-data:nil +sgml-omittag:nil +sgml-shorttag:t +End: +--> + diff --git a/doc/kiconedit/kiconedit-configuration.png b/doc/kiconedit/kiconedit-configuration.png Binary files differnew file mode 100644 index 00000000..100a68cb --- /dev/null +++ b/doc/kiconedit/kiconedit-configuration.png diff --git a/doc/kolourpaint/Makefile.am b/doc/kolourpaint/Makefile.am new file mode 100644 index 00000000..171f575c --- /dev/null +++ b/doc/kolourpaint/Makefile.am @@ -0,0 +1,2 @@ +KDE_LANG = en +KDE_DOCS = AUTO diff --git a/doc/kolourpaint/brush_shapes.png b/doc/kolourpaint/brush_shapes.png Binary files differnew file mode 100644 index 00000000..ee02cc21 --- /dev/null +++ b/doc/kolourpaint/brush_shapes.png diff --git a/doc/kolourpaint/color_box.png b/doc/kolourpaint/color_box.png Binary files differnew file mode 100644 index 00000000..97d7b458 --- /dev/null +++ b/doc/kolourpaint/color_box.png diff --git a/doc/kolourpaint/eraser_shapes.png b/doc/kolourpaint/eraser_shapes.png Binary files differnew file mode 100644 index 00000000..43c1f788 --- /dev/null +++ b/doc/kolourpaint/eraser_shapes.png diff --git a/doc/kolourpaint/fcc_std_text.png b/doc/kolourpaint/fcc_std_text.png Binary files differnew file mode 100644 index 00000000..6d74b00f --- /dev/null +++ b/doc/kolourpaint/fcc_std_text.png diff --git a/doc/kolourpaint/fcc_trans_text.png b/doc/kolourpaint/fcc_trans_text.png Binary files differnew file mode 100644 index 00000000..c85f07d6 --- /dev/null +++ b/doc/kolourpaint/fcc_trans_text.png diff --git a/doc/kolourpaint/fill_color_similarity.png b/doc/kolourpaint/fill_color_similarity.png Binary files differnew file mode 100644 index 00000000..2fce4156 --- /dev/null +++ b/doc/kolourpaint/fill_color_similarity.png diff --git a/doc/kolourpaint/fill_style.png b/doc/kolourpaint/fill_style.png Binary files differnew file mode 100644 index 00000000..6ced3249 --- /dev/null +++ b/doc/kolourpaint/fill_style.png diff --git a/doc/kolourpaint/image_balance.png b/doc/kolourpaint/image_balance.png Binary files differnew file mode 100644 index 00000000..96eadb9c --- /dev/null +++ b/doc/kolourpaint/image_balance.png diff --git a/doc/kolourpaint/image_emboss.png b/doc/kolourpaint/image_emboss.png Binary files differnew file mode 100644 index 00000000..093b25e3 --- /dev/null +++ b/doc/kolourpaint/image_emboss.png diff --git a/doc/kolourpaint/image_flatten.png b/doc/kolourpaint/image_flatten.png Binary files differnew file mode 100644 index 00000000..8095c62e --- /dev/null +++ b/doc/kolourpaint/image_flatten.png diff --git a/doc/kolourpaint/image_flip.png b/doc/kolourpaint/image_flip.png Binary files differnew file mode 100644 index 00000000..0e87243d --- /dev/null +++ b/doc/kolourpaint/image_flip.png diff --git a/doc/kolourpaint/image_invert.png b/doc/kolourpaint/image_invert.png Binary files differnew file mode 100644 index 00000000..64be7174 --- /dev/null +++ b/doc/kolourpaint/image_invert.png diff --git a/doc/kolourpaint/image_reduce_colors.png b/doc/kolourpaint/image_reduce_colors.png Binary files differnew file mode 100644 index 00000000..a8cd5884 --- /dev/null +++ b/doc/kolourpaint/image_reduce_colors.png diff --git a/doc/kolourpaint/image_resize_scale.png b/doc/kolourpaint/image_resize_scale.png Binary files differnew file mode 100644 index 00000000..43014039 --- /dev/null +++ b/doc/kolourpaint/image_resize_scale.png diff --git a/doc/kolourpaint/image_rotate.png b/doc/kolourpaint/image_rotate.png Binary files differnew file mode 100644 index 00000000..0db94613 --- /dev/null +++ b/doc/kolourpaint/image_rotate.png diff --git a/doc/kolourpaint/image_skew.png b/doc/kolourpaint/image_skew.png Binary files differnew file mode 100644 index 00000000..81f2afb4 --- /dev/null +++ b/doc/kolourpaint/image_skew.png diff --git a/doc/kolourpaint/image_soften_sharpen.png b/doc/kolourpaint/image_soften_sharpen.png Binary files differnew file mode 100644 index 00000000..ba7d94d7 --- /dev/null +++ b/doc/kolourpaint/image_soften_sharpen.png diff --git a/doc/kolourpaint/index.docbook b/doc/kolourpaint/index.docbook new file mode 100644 index 00000000..c80f7011 --- /dev/null +++ b/doc/kolourpaint/index.docbook @@ -0,0 +1,1501 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kolourpaint;"> + <!ENTITY Clarence.Dang +"<personname><firstname>Clarence</firstname><surname>Dang</surname></personname>"> + <!ENTITY Clarence.Dang.mail "<email>dang@kde.org</email>"> + <!ENTITY Thurston.Dang +"<personname><firstname>Thurston</firstname><surname>Dang</surname></personname>"> + <!ENTITY Thurston.Dang.mail "<email>thurston_dang@users.sourceforge.net</email>"> + <!ENTITY package "kdegraphics"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title>The &kolourpaint; Handbook</title> + +<authorgroup> +<author> +<personname> +<firstname>Thurston</firstname> +<surname>Dang</surname> +</personname> +<email>thurston_dang@users.sourceforge.net</email> +</author> + +<othercredit role="reviewer"> +<personname> +<firstname>Clarence</firstname> +<surname>Dang</surname> +</personname> +</othercredit> + +<othercredit role="reviewer"> +&Lauri.Watts; +</othercredit> +<!-- TRANS:ROLES_OF_TRANSLATORS --> +</authorgroup> + +<copyright> +<year>2004</year> +<year>2005</year> +<holder>Thurston Dang</holder> +</copyright> + +<legalnotice> +&FDLNotice; +</legalnotice> +<date>2005-12-29</date> +<releaseinfo>1.4_relight</releaseinfo> + +<abstract> +<para> +&kolourpaint; is a free, easy-to-use paint program for &kde;. +</para> +</abstract> + +<keywordset> +<keyword>kolourpaint</keyword> +<keyword>kdegraphics</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> +<para>&kolourpaint; is a free, easy-to-use paint program for &kde;. It's +perfect for everyday tasks such as:</para> + +<itemizedlist> +<listitem> +<para>Painting - drawing diagrams and <quote>finger painting</quote></para> +</listitem> +<listitem> +<para>Image Manipulation - editing screenshots and photos; applying +effects</para> +</listitem> +<listitem> +<para>Icon Editing - drawing clipart and logos with transparency</para> +</listitem> +</itemizedlist> +</chapter> + +<chapter id="using-kolourpaint"> +<title>Using &kolourpaint;</title> + +<para>Click on the following links to explore &kolourpaint;'s +capabilities:</para> + +<itemizedlist> +<listitem> +<para><link linkend="tools-chapter">Tools</link></para> +</listitem> +<listitem> +<para><link linkend="working-with-color">Working with Color</link></para> +</listitem> +<listitem> +<para><link linkend="view-options-chapter">View Options</link></para> +</listitem> +<listitem> +<para><link linkend="image-effects-chapter">Image Effects</link></para> +</listitem> +</itemizedlist> +</chapter> + +<chapter id="tools-chapter"> +<title>Tools</title> + +<sect1 id="tool-reference"> +<title>Tool Reference</title> + +<para> +A quick way to select a tool in &kolourpaint; is to press the single key shortcut associated with it, +documented below and in the <interface>Tool Box</interface> tooltips. You can also hold +<keycombo action="simul">&Alt;&Shift;</keycombo> while pressing the key, which is necessary when you are +writing text (as the single key shortcuts will be disabled). For example, to select the brush, press +<keycombo action="simul">&Alt;&Shift;<keycap>B</keycap></keycombo> or just B (when not writing text). +</para> + +<simplelist> +<member><link linkend="tool-brush"><guiicon> +<inlinemediaobject><imageobject><imagedata fileref="tool_brush.png" format="PNG"/> +</imageobject></inlinemediaobject> +</guiicon></link> +<link linkend="tool-brush">Brush</link> (B)</member> + +<member><link linkend="tool-eraser-clr"><guiicon> +<inlinemediaobject><imageobject> +<imagedata fileref="tool_color_washer.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-eraser-clr">Color Eraser</link> (O)</member> + +<member><link linkend="tool-color-picker"><guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_color_picker.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-color-picker">Color Picker</link> (C) +</member> + +<member> +<link linkend="tool-polystar"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_polyline.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-polystar">Connected Lines</link> (N)</member> + +<member> +<link linkend="tool-curve"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_curve.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-curve">Curve</link> (V) +</member> + +<member> +<link linkend="tool-ellipse"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_ellipse.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-ellipse">Ellipse</link> (E) +</member> + +<member> +<link linkend="tool-eraser-std"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_eraser.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-eraser-std">Eraser</link> (A) +</member> + +<member> +<link linkend="tool-flood-fill"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_flood_fill.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-flood-fill">Flood Fill</link> (F) +</member> + +<member> +<link linkend="tool-line"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_line.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-line">Line</link> (L) +</member> + +<member> +<link linkend="tool-pen"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_pen.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-pen">Pen</link> (P) +</member> + +<member> +<link linkend="tool-polystar"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_polygon.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-polystar">Polygon</link> (G) +</member> + +<member> +<link linkend="tool-rectangles"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_rectangle.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-rectangles">Rectangle</link> (R) +</member> + +<member> +<link linkend="tool-rectangles"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_rounded_rectangle.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-rectangles">Rounded Rectangle</link> (U) +</member> + +<member> +<link linkend="tool-selections"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_elliptical_selection.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-selections">Selection (Elliptical)</link> (I) +</member> + +<member> +<link linkend="tool-selections"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_free_form_selection.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-selections">Selection (Free-Form)</link> (M) +</member> + +<member> +<link linkend="tool-selections"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_rect_selection.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-selections">Selection (Rectangular)</link> (S) +</member> + +<member> +<link linkend="tool-spraycan"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_spraycan.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-spraycan">Spraycan</link> (Y) +</member> + +<member> +<link linkend="tool-text"> +<guiicon> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_text.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</guiicon> +</link> +<link linkend="tool-text">Text</link> (T) +</member> +</simplelist> + +</sect1> + +<sect1 id="tool-brush"> +<title> +Brush +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_brush.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> +<para> +Click or click and drag with the brush to draw. +</para> + +<informaltable> +<tgroup cols="2"> +<tbody> +<row> +<entry> +<inlinemediaobject> +<imageobject> +<imagedata fileref="brush_shapes.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</entry> + +<entry> +<para> +Click on one of the shapes to select the brush shape. You can use a +circular, square, slash or backslash brush shape.</para> +</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<para>The &LMB; draws in the foreground color. The &RMB; draws in the +background color.</para> +</sect1> + +<sect1 id="tool-color-picker"> +<title>Color Picker <inlinemediaobject> +<imageobject> +<imagedata fileref="tool_color_picker.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>To set the foreground color, <mousebutton>left</mousebutton> click on +a pixel. To set the background color, <mousebutton>right</mousebutton> click on a pixel. +&kolourpaint; will then return to the previously selected tool.</para> + +</sect1> + +<sect1 id="tool-polystar"> +<title>Connected Lines and Polygon +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_polystar.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Click and drag to draw connected lines. The polygon tool is used in +the same way, however, the start and end points are automatically connected +to form a polygon.</para> + +<para>The &LMB; draws in the foreground color. The &RMB; draws in the +background color, and will also reverse the fill color for polygons.</para> + +<para>You can <link linkend="tool-options">set the line width</link>. For +polygons, you can also <link linkend="tool-options">set the fill +style</link>.</para> + +</sect1> + +<sect1 id="tool-curve"> +<title>Curve <inlinemediaobject> +<imageobject> +<imagedata fileref="tool_curve.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Click and drag to draw a line - this sets the start and end +points. You can set up to two control points by dragging. To finish the +curve without using both or any control points, click the other mouse +button. The curve tool draws a Cubic Bezier.</para> + +<para>The &LMB; draws in the foreground color. The &RMB; draws in the +background color.</para> + +<para>You can also <link linkend="tool-options">set the line +width</link>.</para> + +</sect1> + +<sect1 id="tool-ellipse"> +<title>Ellipse <inlinemediaobject> +<imageobject> +<imagedata fileref="tool_ellipse.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Click and drag to draw an ellipse.</para> + +<para>The &LMB; draws in the foreground color. The &RMB; draws in the +background color, and will reverse the fill color.</para> + +<para>You can also <link linkend="tool-options">set the line width and fill +style</link>.</para> + +<para>For additional functionality, use the modifier keys:</para> + +<itemizedlist> +<listitem> +<para>Hold &Shift; and drag to draw a circle.</para> +</listitem> +<listitem> +<para>To draw an ellipse with a center point of your choice, hold &Ctrl;, +click on the center point, and drag until the ellipse is the correct size +and shape.</para> +</listitem> +<listitem> +<para>To draw a circle with a center point of your choice, hold &Ctrl; and +&Shift;, click on the center point, and drag until the circle is the correct +size.</para> +</listitem> +</itemizedlist> +</sect1> + +<sect1 id="tool-erasers"> +<!-- This title does not contain the eraser icons because they are present in the +sections; c.f. Connected Lines and Polygon, Rectangles and Selections. --> +<title>Erasers</title> + +<sect2 id="tool-eraser-std"> +<title>Eraser +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_eraser.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Click and drag with the eraser to rub out mistakes.</para> + +<note> +<para>Unlike other tools, the erasers draw in the background color. To draw +in the foreground color, use the &RMB;.</para> +</note> + +<para>The eraser only has <link linkend="tool-options">square +shapes</link>. To draw with other shapes such as circles use the <link +linkend="tool-brush">Brush</link> and the &RMB;.</para> + +<tip> +<para>Double-click on the Eraser icon to clear the entire image. This is +equivalent to using the <link linkend="image-clear">Clear</link> option on +the Image menu.</para> +</tip> + +</sect2> + +<sect2 id="tool-eraser-clr"> +<title>Color Eraser +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_color_washer.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Click and drag to replace pixels of the foreground color with the +background color. To replace all pixels similar (but not necessarily exactly +equal) to the foreground color, such as in dithered images and photos, use a +<link linkend="color-box">Color Similarity</link> setting other than +Exact.</para> + +<note> +<para>Unlike other tools, the erasers draw in the background color. To +replace pixels of the background color with the foreground color, use the +&RMB;.</para> +</note> + +<para>You can configure the <link linkend="tool-options">eraser +size</link>.</para> + +<tip> +<para>Double-click on the Color Eraser icon to apply it to the entire image.</para> +</tip> +</sect2> + +</sect1> + +<sect1 id="tool-flood-fill"> +<title>Flood Fill +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_flood_fill.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Click to fill a region. To fill a dithered region, use a <link +linkend="color-box">Color Similarity</link> setting other than Exact.</para> + +<para>The &LMB; fills in the foreground color. The &RMB; fills in the +background color.</para> +</sect1> + +<sect1 id="tool-line"> +<title> +Line +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_line.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Click and drag to draw a line.</para> + +<para>The &LMB; draws in the foreground color. The &RMB; draws in the +background color.</para> + +<para>You can also <link linkend="tool-options">set the line +width</link>.</para> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="lines_30_deg.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +<inlinemediaobject> +<imageobject> +<imagedata fileref="lines_30_45_deg.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +<inlinemediaobject> +<imageobject> +<imagedata fileref="lines_45_deg.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<itemizedlist> +<listitem> +<para>Hold &Ctrl; to draw lines angled at the nearest multiple of 30 degrees +- these are the lines in the red diagram.</para> +</listitem> +<listitem> +<para>Hold &Shift; to draw lines angled at the nearest multiple of 45 +degrees - these are the lines in the blue diagram.</para> +</listitem> +<listitem> +<para>Hold &Ctrl; and &Shift; to draw lines angled at the nearest multiple +of 30 or 45 degrees - these are the lines in the green diagram.</para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="tool-pen"> +<title>Pen +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_pen.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Click to draw a dot or click and drag to draw a freehand line.</para> + +<para>The &LMB; draws in the foreground color. The &RMB; draws in the +background color. </para> + +</sect1> + +<sect1 id="tool-rectangles"> +<title>Rectangles +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_rectangles.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Click and drag to draw a rectangle. The Rounded Rectangle is a Rectangle with rounded +corners.</para> + +<para>The &LMB; draws in the foreground color. The &RMB; draws in the background color, +and will reverse the fill color.</para> + +<para>You can also <link linkend="tool-options">set the line width and fill +style</link>.</para> + +<para> For additional functionality, use the modifier keys:</para> + +<itemizedlist> +<listitem> +<para>Hold &Shift; and drag to draw a square.</para> +</listitem> +<listitem> +<para>To draw a rectangle with a center point of your choice, hold &Ctrl;, +click on the center point, and drag until the rectangle is the correct size +and shape.</para> +</listitem> +<listitem> +<para>To draw a square with a center point of your choice, hold &Ctrl; and &Shift;, +click on the center point, and drag until the square is the correct size.</para> +</listitem> +</itemizedlist> + +</sect1> + +<sect1 id="tool-selections"> +<title>Selections +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_selections.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Use the selection tools to draw out the boundary of a +selection.</para> + +<para>To move the selection, click and drag on it. The main view will scroll as required to allow you to move the selection to part of the image that is not currently displayed.</para> + +<para> +You can free-form <link linkend="image-resize-scale">Resize</link> the entire image or +<link linkend="image-resize-scale">Smooth Scale</link> the selection using the corresponding handles. +Hold &Shift; while free-form scaling the selection to maintain aspect ratio. +The &RMB; invokes a context menu with common <guimenu>Edit</guimenu> commands and <link linkend="image-effects-section">Image Effects</link>. +</para> + +<tip> +<para>You can use the cursor keys while drawing out the boundary of the +selection or while moving it.</para> +</tip> + +<para> +If you hold &Ctrl; before moving the selection, then you will move a +copy of it. The selection will be smeared when moving it while &Shift; is held. +</para> + +<informaltable> +<tgroup cols="2"> +<tbody> +<row> +<entry> +<inlinemediaobject> +<imageobject> +<imagedata fileref="selections_opaque_transparent.png" +format="PNG"/> +</imageobject> +</inlinemediaobject> +</entry> +<entry> +<para>There are two selection modes: Opaque (default) and Transparent. If +you use the Transparent selection mode, all pixels of the background color +will be transparent (background subtraction). This allows you to paste a +selection without the background. To perform background subtraction on a +dithered image, use a <link linkend="color-box">Color Similarity</link> +setting other than Exact.</para> +</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<para>You can apply Image Effects to a selection - see the <link +linkend="image-effects-section">Image Effects</link> section for more +information.</para> +</sect1> + +<sect1 id="tool-spraycan"> +<title>Spraycan +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_spraycan.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para>Click and drag to spray graffiti. Hold down the mouse button for a +more concentrated spray.</para> + +<informaltable> +<tgroup cols="2"> +<tbody> +<row> +<entry> +<inlinemediaobject> +<imageobject> +<imagedata fileref="spraycan_patterns.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</entry> +<entry> +<para>Click on one of the shapes to select the spray size. You can select +from spray sizes of 9x9, 17x17 and 29x29.</para> +</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<para>The &LMB; draws in the foreground color. The &RMB; draws in the +background color.</para> + +</sect1> + +<sect1 id="tool-text"> +<title>Text +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_text.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</title> + +<para> +Click and drag an area in which to write text. Click and drag +on the border to move it. You can resize the text box by dragging on the +handles or by using the <link linkend="image-resize-scale">Resize</link> dialog. +</para> + +<tip> +<para>If you have deselected a text box you can use <guimenuitem>Undo</guimenuitem> to edit the text +again.</para> +</tip> + +<sect2 id="tool-text-transparent"> +<title>Using the Transparent Color</title> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="fcc_std_text.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> +<para>The left picture shows the example image. The right picture shows the addition of text +with opaque foreground and background colors. +</para> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="fcc_trans_text.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para>The left picture shows the addition of text with opaque foreground +colors and a transparent background color. The right picture shows the +addition of text with a transparent foreground color and opaque background +color.</para> +</sect2> +</sect1> + +<sect1 id="tool-options"> +<title>Common Tool Options</title> + +<informaltable> +<tgroup cols="2"> +<tbody> +<row> +<entry> +<inlinemediaobject> +<imageobject> +<imagedata fileref="eraser_shapes.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</entry> +<entry> +<para>Click on one of the squares to select the eraser size. You can select +from squares of side length 2, 3, 5, 9, 17 and 29 pixels.</para> + +<para>The eraser size setting affects the <link +linkend="tool-erasers">Erasers</link>.</para> +</entry> +</row> +<row> +<entry> +<inlinemediaobject> +<imageobject> +<imagedata fileref="line_width.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</entry> +<entry> +<para>Click on one of the lines to select the line width. You can select +from line widths of 1, 2, 3, 5 and 8 pixel(s).</para> + +<para>The line width setting affects the <link +linkend="tool-polystar">Connected Lines</link>, <link +linkend="tool-curve">Curve</link>, <link +linkend="tool-ellipse">Ellipse</link>, <link +linkend="tool-line">Line</link>, <link +linkend="tool-polystar">Polygon</link>, <link +linkend="tool-rectangles">Rectangle</link> and <link +linkend="tool-rectangles">Rounded Rectangle</link> tools. </para> +</entry> +</row> +<row> +<entry> +<inlinemediaobject> +<imageobject> +<imagedata fileref="fill_style.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</entry> +<entry> +<para>Click on one of the rectangles to select the fill style. You can +select from No Fill, Fill with Background Color and Fill with Foreground +Color.</para> <para>The fill style setting affects the <link +linkend="tool-ellipse">Ellipse</link>, <link +linkend="tool-polystar">Polygon</link>, <link +linkend="tool-rectangles">Rectangle</link> and <link +linkend="tool-rectangles">Rounded Rectangle</link> tools. +</para> +</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +</sect1> +</chapter> + +<chapter id="working-with-color"> +<title>Working with Color</title> + +<sect1 id="color-box"> +<title>The Color Box</title> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="color_box.png" format="PNG"/> +</imageobject> +<textobject> +<phrase>Color Box</phrase> +</textobject> +</inlinemediaobject> +</para> + +<para>The Color Box has 3 main sections: the Color Tablet, the Color Palette +and the Color Similarity Selector.</para> + +<para>The Color Tablet shows the current foreground color as a square on top +of another square representing the current background color. When drawing +with the &LMB;, the foreground color is used, and when drawing with the +&RMB; the background color is used (except for the <link +linkend="tool-erasers">Erasers</link>). You can click on the double-ended +arrow to swap the foreground and background colors. </para> + +<para>The Color Palette shows a selection of colors for you to choose +from. The translucent pyramid represents the transparent color. Left-click +on a color to set the foreground color and right-click on a color to set the +background color. You can also drag and drop any opaque color into the Color +Tablet squares. To edit a color in the Color Tablet or Palette, double-click +on it. The <link linkend="tool-color-picker">Color Picker</link> tool allows +you to select a color from the image. </para> + +<para>Color Similarity allows you to work more effectively with dithered +images and photos, in a comparable manner to the <quote>Magic Wand</quote> feature of other paint programs. It applies to transparent selections, as well as the +<link linkend="tool-flood-fill">Flood Fill</link>, <link +linkend="tool-eraser-clr">Color Eraser</link> and <link +linkend="image-autocrop">Autocrop / Remove Internal Border</link> tools. Double-click on the Color +Similarity Selector to choose how similar colors must be to be considered +identical. When using selections in Transparent mode, any color in the +selection that is similar to the background color will also be made +transparent.</para> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="fill_color_similarity.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para> +The left picture shows the example image. The right pictures demonstrate the use of a flood fill, with Color Similarity settings of 5%, 15% and 30%. In this example, with a Color Similarity setting of <guilabel>Exact</guilabel>, a flood fill at (80, 100) would only fill one pixel, as the surrounding pixels are similar but not identical. As Color Similarity is increased, more pixels that are similar in color are considered identical, hence the fill extends further. +</para> + +</sect1> +</chapter> + +<chapter id="view-options-chapter"> +<title>View Options</title> + +<sect1 id="view-options-section"> +<title>View Options Reference</title> + +<para><link linkend="view-zoom">Zoom incorporating the Grid</link></para> +<para><link linkend="view-thumbnail">Thumbnail</link></para> + +</sect1> + +<sect1 id="view-zoom"> +<title>Zoom incorporating the Grid</title> +<para>Increase the zoom level to edit images with more precision, or reduce it to see more of the image.</para> + +<important> +<para> +At zoom levels that aren't multiples of 100%, parts of the image may appear to move when the user interacts with it. Other minor redraw glitches may also occur at such zoom levels. +</para> +</important> + +<para>At zoom levels of 600% or greater that are also multiples of 100%, you can <guimenuitem>Show Grid</guimenuitem> to more accurately edit individual pixels.</para> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="tool_text.png" format="PNG"/> +</imageobject> +</inlinemediaobject> + +<inlinemediaobject> +<imageobject> +<imagedata fileref="text_zoom_grid.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para>The first picture shows the <link linkend="tool-text">Text</link> tool icon, while the latter shows it at 600% zoom with the grid on.</para> + +<tip> +<para> +Another way of zooming when not drawing is to scroll the <mousebutton>wheel</mousebutton> while holding &Ctrl;. +</para> +</tip> + +</sect1> + +<sect1 id="view-thumbnail"> +<title>Thumbnail</title> +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="view_thumbnails.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> +<para> +If <guimenuitem>Zoomed Thumbnail Mode</guimenuitem> is selected, the entire image is displayed, scaled as required to fit the thumbnail window (top-right picture). +</para> +<para> +Otherwise, the thumbnail displays as much of the image as possible, starting from the top-left of the main view (bottom-right picture). +</para> +</sect1> + +</chapter> + +<chapter id="image-effects-chapter"> +<title>Image Effects</title> + +<sect1 id="image-effects-section"> +<title>Image Effects Reference</title> +<para><link linkend="image-autocrop">Autocrop / Remove Internal Border</link></para> +<para><link linkend="image-balance">Balance</link></para> +<para><link linkend="image-clear">Clear</link></para> +<para><link linkend="image-emboss">Emboss</link></para> +<para><link linkend="image-flatten">Flatten</link></para> +<para><link linkend="image-flip">Flip</link></para> +<para><link linkend="image-invert">Invert</link></para> +<para><link linkend="image-reduce-colors">Reduce Colors</link></para> +<para><link linkend="image-grayscale">Reduce to Grayscale</link></para> +<para><link linkend="image-monochrome">Reduce to Monochrome (Dithered)</link></para> +<para><link linkend="image-resize-scale">Resize / Scale</link></para> +<para><link linkend="image-rotate">Rotate</link></para> +<para><link linkend="image-set-as-image">Set as Image (Crop)</link></para> +<para><link linkend="image-skew">Skew</link></para> +<para><link linkend="image-soften-sharpen">Soften & Sharpen</link></para> +<para><link linkend="image-more-effects">More Effects</link></para> +<para><link linkend="image-notes">Notes</link></para> +</sect1> + +<sect1 id="image-autocrop"> +<title>Autocrop / Remove Internal Border</title> + +<para>This automatically removes the border of an image or selection. Use +Autocrop if you have a figure that does not fill the entire image or selection and you +wish to remove the excess whitespace. To use this feature with a dithered +image border, you will also need to use <link linkend="color-box">Color +Similarity</link>.</para> + +</sect1> + +<sect1 id="image-balance"> +<title>Balance</title> + +<para> +This feature is accessible from the <link linkend="image-more-effects">More Effects</link> dialog. +</para> +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="image_balance.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para>This allows you to set the brightness, contrast and gamma of the image or selection. +</para> + +<note> +<para> +The more common measure of gamma (a decimal from 0.10 to 10.00) is located between the +<guilabel>Gamma</guilabel> spinbox and the <guibutton>Reset</guibutton> button. +</para> +</note> +</sect1> + +<sect1 id="image-clear"> +<title>Clear</title> + +<para>This fills the entire image or selection with the background +color.</para> + +<tip> +<para>Double-click on the <link linkend="tool-eraser-std">Eraser</link> +icon to clear the entire image.</para> +</tip> + +</sect1> + +<sect1 id="image-emboss"> +<title>Emboss</title> + +<para> +This feature is accessible from the <link linkend="image-more-effects">More Effects</link> dialog. +</para> +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="image_emboss.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para> +Check <guilabel>Enable</guilabel> to apply the Emboss effect. This emphasises the edges and gives the +image or selection an "engraved look". +</para> +</sect1> + +<sect1 id="image-flatten"> +<title>Flatten</title> + +<para> +This feature is accessible from the <link linkend="image-more-effects">More Effects</link> dialog. +</para> +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="image_flatten.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para> +This recolors the image with varying shades of the two selected colors. +</para> +</sect1> + +<sect1 id="image-flip"> +<title>Flip</title> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="image_flip.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para>This flips the entire image or selection horizontally or +vertically.</para> + +</sect1> + +<sect1 id="image-invert"> +<title>Invert</title> + +<para> +This feature is accessible from the <link linkend="image-more-effects">More Effects</link> dialog. +</para> +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="image_invert.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para>This allows you to invert one or more RGB channels in the image or selection. Select <guilabel>All</guilabel> to change a photo into a negative and vice versa. This generally looks quite funny.</para> + +<tip> +<para>To quickly invert all channels, you do not need to use this dialog. You can instead +access the <guimenuitem>Invert Colors</guimenuitem> item in the <guimenu>Image</guimenu> or +<guimenu>Selection</guimenu> menu. +</para> +</tip> + +</sect1> + +<sect1 id="image-reduce-colors"> +<title>Reduce Colors</title> + +<para> +This feature is accessible from the <link linkend="image-more-effects">More Effects</link> dialog. +</para> +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="image_reduce_colors.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para> +This reduces the number of colors used by the image or selection, with or without dithering. +</para> + +<para> +Dithering generally provides better quality results, however, you may wish to disable it for artistic effects; +<abbrev>e.g.</abbrev> using <guilabel>Monochrome</guilabel> instead of +<guilabel>Monochrome (Dithered)</guilabel> gives a silhouette effect. +</para> + +<para> +Another important distinction is that while <guilabel>Monochrome (Dithered)</guilabel> will always reduce the entire image or selection to black and white, <guilabel>Monochrome</guilabel> will do this only if the image or selection contains more than 2 colors. +</para> + +<tip> +<para>For a quick, dithered monochrome image or selection, use the <link linkend="image-monochrome">Reduce to Monochrome (Dithered)</link> item of the <guimenu>Image</guimenu> or <guimenu>Selection</guimenu> menu. +</para> +</tip> + +<note> +<para> +Changing the number of colors here has no effect on the color depth of the file format. If you want to +change the color depth, you should select it in the file saving dialogs. Note that, confusingly, changing +the color depth also changes the number of colors. +</para> +</note> +</sect1> + +<sect1 id="image-grayscale"> +<title>Reduce to Grayscale</title> + +<para> This reduces the entire image or selection to grayscale.</para> + +</sect1> + +<sect1 id="image-monochrome"> +<title>Reduce to Monochrome (Dithered)</title> + +<para>This reduces the entire image or selection to black and white.</para> + +<tip> +<para> +If you do not want the image or selection to be dithered, use the <link linkend="image-reduce-colors"> +Reduce Colors</link> dialog. +</para> +</tip> +</sect1> + +<sect1 id="image-resize-scale"> +<title>Resize / Scale</title> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="image_resize_scale.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para>Resizing the image changes the dimensions of the image without +applying a transformation to the existing contents. Scaling the image will +stretch the existing contents to the new dimensions. <guibutton>Smooth Scale</guibutton> +generally provides better quality results than Scaling, by blending neighbouring colors.</para> + +<para>You can express the new dimensions in pixels, or as a percentage of +the original size. If you select <guilabel>Keep aspect ratio</guilabel>, the +width and height will be scaled by the same percentage.</para> + +<tip> +<para> +You can free-form <guibutton>Resize</guibutton> the entire image or <guibutton>Smooth Scale</guibutton> the selection using the corresponding handles. +</para> +</tip> + +<note> +<para>Only scaling is supported for selections, and only resizing is +supported for text boxes. See <link linkend="image-notes">Notes</link> for +additional details about applying these effects.</para> +</note> +</sect1> + +<sect1 id="image-rotate"> +<title>Rotate</title> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="image_rotate.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para>This rotates the image. You can specify the angle and direction of +rotation.</para> + +<tip> +<para>You can reverse the direction of rotation by specifying a negative +custom angle.</para> +</tip> + +<note> +<para>See <link linkend="image-notes">Notes</link> for details about +applying this effect to a selection. +</para> +</note> +</sect1> + +<sect1 id="image-set-as-image"> +<title>Set as Image (Crop)</title> + +<para>This will set the selection as the image.</para> + +<note> +<para>This is only available when you have an active selection.</para> +</note> +</sect1> + +<sect1 id="image-skew"> +<title>Skew</title> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="image_skew.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para>This skews the entire image or selection horizontally and/or +vertically.</para> + +<note> +<para>See <link linkend="image-notes">Notes</link> for details about +applying this effect to a selection.</para> +</note> +</sect1> + +<sect1 id="image-soften-sharpen"> +<title>Soften & Sharpen</title> + +<para> +This feature is accessible from the <link linkend="image-more-effects">More Effects</link> dialog. +</para> +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="image_soften_sharpen.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para> +Use this effect to soften or sharpen the image. +</para> +</sect1> + +<sect1 id="image-more-effects"> +<!-- More Effects is left at the end because it is not part of the Image Effects Reference - if a +user selects the next page, the next page should be Autocrop / Remove Internal Border. --> +<title>More Effects</title> + +<para> +This dialog contains the <link linkend="image-balance">Balance</link>, +<link linkend="image-emboss">Emboss</link>, <link linkend="image-flatten">Flatten</link>, +<link linkend="image-invert">Invert</link>, <link linkend="image-reduce-colors">Reduce Colors</link> +and <link linkend="image-soften-sharpen">Soften & Sharpen</link> features. +</para> +</sect1> + +<sect1 id="image-notes"> +<title>Notes</title> + +<para><link linkend="image-resize-scale">Resizing / Scaling</link>, <link +linkend="image-rotate">Rotating</link> and <link +linkend="image-skew">Skewing</link> may change the dimensions of the +image. You can view the new dimensions in the dialog.</para> + +<para>If you apply these effects to an image, the image will be resized if +necessary. However, if you apply these effects to a selection, the image +will not be resized, even if the transformed selection does not fit.</para> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="rotate_image_30.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para> +The left image has been rotated 30 degrees clockwise to form the right image. &kolourpaint; has +automatically enlarged the image to accommodate the larger contents. +</para> + +<para> +<inlinemediaobject> +<imageobject> +<imagedata fileref="rotate_selection_30.png" format="PNG"/> +</imageobject> +</inlinemediaobject> +</para> + +<para> +The left <emphasis>selection</emphasis> has been rotated 30 degrees clockwise to form the right +selection. The image size has remained the same, hence parts of the selection will not be visible +without <link linkend="image-resize-scale">Resizing</link> the <emphasis>image</emphasis>. +</para> +</sect1> + +</chapter> + +<chapter id="credits"> +<title>Credits and License</title> +<epigraph> +<attribution>Carl Tucker</attribution> +<para> +It might not be concise documentation; it might not be complete documentation; but it is +honest documentation. +</para> +</epigraph> + +<para> +&kolourpaint; +</para> +<para>Program Copyright © 2003, 2004, 2005 &Clarence.Dang; &Clarence.Dang.mail;</para> + +<para> +&kolourpaint;-specific icons Copyright © 2004, 2005 +Kristof Borrey <email>borrey@kde.org</email>, +Nuno Pinheiro <email>nf.pinheiro@gmail.com</email>, +Danny Allen <email>dannya40uk@yahoo.co.uk</email> +</para> + +<para>Documentation and additional documentation artwork Copyright © 2004, 2005 +&Thurston.Dang; &Thurston.Dang.mail;</para> + +<para>Portions reproduced with permission from <ulink +url="http://kolourpaint.sourceforge.net/"></ulink>.</para> + +&underFDL; + +<para>This program is licensed as follows:</para> + +<para>Copyright © 2003, 2004, 2005 &Clarence.Dang; &Clarence.Dang.mail;</para> + +<literallayout> +All rights reserved. + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +</literallayout> +</chapter> + +<appendix id="installation"> +<title>Installation</title> +<sect1 id="getting-kapp"> +<title>How to obtain &kolourpaint;</title> + +&install.intro.documentation; + +<para>More frequent releases with support for previous versions of &kde; are +available at <ulink +url="http://kolourpaint.sourceforge.net/">http://kolourpaint.sourceforge.net/</ulink>.</para> + +</sect1> + +<sect1 id="requirements"> +<title>Requirements</title> + +<para> &kolourpaint; 1.4_relight requires &kde; 3.5.</para> +</sect1> + +<sect1 id="compilation"> +<title>Compilation and Installation</title> + +<note> +<para> +If you are reading this help in the &khelpcenter;, then &kolourpaint; has already been +installed on this system and you do not need to follow these generic instructions. +</para> +</note> + +&install.compile.documentation; + +</sect1> + +<sect1 id="configuration"> +<title>Configuration</title> + +<para>&kolourpaint; should run without any additional configuration.</para> +</sect1> + +</appendix> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: xml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +vim:tabstop=2:shiftwidth=2:expandtab +--> diff --git a/doc/kolourpaint/kolourpaint-main.png b/doc/kolourpaint/kolourpaint-main.png Binary files differnew file mode 100644 index 00000000..abab73d8 --- /dev/null +++ b/doc/kolourpaint/kolourpaint-main.png diff --git a/doc/kolourpaint/line_width.png b/doc/kolourpaint/line_width.png Binary files differnew file mode 100644 index 00000000..0477b6e1 --- /dev/null +++ b/doc/kolourpaint/line_width.png diff --git a/doc/kolourpaint/lines_30_45_deg.png b/doc/kolourpaint/lines_30_45_deg.png Binary files differnew file mode 100644 index 00000000..315499e5 --- /dev/null +++ b/doc/kolourpaint/lines_30_45_deg.png diff --git a/doc/kolourpaint/lines_30_deg.png b/doc/kolourpaint/lines_30_deg.png Binary files differnew file mode 100644 index 00000000..9519df52 --- /dev/null +++ b/doc/kolourpaint/lines_30_deg.png diff --git a/doc/kolourpaint/lines_45_deg.png b/doc/kolourpaint/lines_45_deg.png Binary files differnew file mode 100644 index 00000000..870cd464 --- /dev/null +++ b/doc/kolourpaint/lines_45_deg.png diff --git a/doc/kolourpaint/rotate_image_30.png b/doc/kolourpaint/rotate_image_30.png Binary files differnew file mode 100644 index 00000000..ebf00431 --- /dev/null +++ b/doc/kolourpaint/rotate_image_30.png diff --git a/doc/kolourpaint/rotate_selection_30.png b/doc/kolourpaint/rotate_selection_30.png Binary files differnew file mode 100644 index 00000000..23567ef8 --- /dev/null +++ b/doc/kolourpaint/rotate_selection_30.png diff --git a/doc/kolourpaint/selections_opaque_transparent.png b/doc/kolourpaint/selections_opaque_transparent.png Binary files differnew file mode 100644 index 00000000..627e5fee --- /dev/null +++ b/doc/kolourpaint/selections_opaque_transparent.png diff --git a/doc/kolourpaint/spraycan_patterns.png b/doc/kolourpaint/spraycan_patterns.png Binary files differnew file mode 100644 index 00000000..6505311a --- /dev/null +++ b/doc/kolourpaint/spraycan_patterns.png diff --git a/doc/kolourpaint/text_zoom_grid.png b/doc/kolourpaint/text_zoom_grid.png Binary files differnew file mode 100644 index 00000000..4fa85435 --- /dev/null +++ b/doc/kolourpaint/text_zoom_grid.png diff --git a/doc/kolourpaint/tool_brush.png b/doc/kolourpaint/tool_brush.png Binary files differnew file mode 100644 index 00000000..32a23881 --- /dev/null +++ b/doc/kolourpaint/tool_brush.png diff --git a/doc/kolourpaint/tool_color_picker.png b/doc/kolourpaint/tool_color_picker.png Binary files differnew file mode 100644 index 00000000..569171e6 --- /dev/null +++ b/doc/kolourpaint/tool_color_picker.png diff --git a/doc/kolourpaint/tool_color_washer.png b/doc/kolourpaint/tool_color_washer.png Binary files differnew file mode 100644 index 00000000..97193458 --- /dev/null +++ b/doc/kolourpaint/tool_color_washer.png diff --git a/doc/kolourpaint/tool_curve.png b/doc/kolourpaint/tool_curve.png Binary files differnew file mode 100644 index 00000000..b86c96fb --- /dev/null +++ b/doc/kolourpaint/tool_curve.png diff --git a/doc/kolourpaint/tool_ellipse.png b/doc/kolourpaint/tool_ellipse.png Binary files differnew file mode 100644 index 00000000..608d40b7 --- /dev/null +++ b/doc/kolourpaint/tool_ellipse.png diff --git a/doc/kolourpaint/tool_elliptical_selection.png b/doc/kolourpaint/tool_elliptical_selection.png Binary files differnew file mode 100644 index 00000000..70edc438 --- /dev/null +++ b/doc/kolourpaint/tool_elliptical_selection.png diff --git a/doc/kolourpaint/tool_eraser.png b/doc/kolourpaint/tool_eraser.png Binary files differnew file mode 100644 index 00000000..459d28a2 --- /dev/null +++ b/doc/kolourpaint/tool_eraser.png diff --git a/doc/kolourpaint/tool_flood_fill.png b/doc/kolourpaint/tool_flood_fill.png Binary files differnew file mode 100644 index 00000000..746ede5b --- /dev/null +++ b/doc/kolourpaint/tool_flood_fill.png diff --git a/doc/kolourpaint/tool_free_form_selection.png b/doc/kolourpaint/tool_free_form_selection.png Binary files differnew file mode 100644 index 00000000..ed03ba39 --- /dev/null +++ b/doc/kolourpaint/tool_free_form_selection.png diff --git a/doc/kolourpaint/tool_line.png b/doc/kolourpaint/tool_line.png Binary files differnew file mode 100644 index 00000000..ce282923 --- /dev/null +++ b/doc/kolourpaint/tool_line.png diff --git a/doc/kolourpaint/tool_pen.png b/doc/kolourpaint/tool_pen.png Binary files differnew file mode 100644 index 00000000..ae64f5aa --- /dev/null +++ b/doc/kolourpaint/tool_pen.png diff --git a/doc/kolourpaint/tool_polygon.png b/doc/kolourpaint/tool_polygon.png Binary files differnew file mode 100644 index 00000000..a5500d94 --- /dev/null +++ b/doc/kolourpaint/tool_polygon.png diff --git a/doc/kolourpaint/tool_polyline.png b/doc/kolourpaint/tool_polyline.png Binary files differnew file mode 100644 index 00000000..1e23ccd9 --- /dev/null +++ b/doc/kolourpaint/tool_polyline.png diff --git a/doc/kolourpaint/tool_polystar.png b/doc/kolourpaint/tool_polystar.png Binary files differnew file mode 100644 index 00000000..8eadbcad --- /dev/null +++ b/doc/kolourpaint/tool_polystar.png diff --git a/doc/kolourpaint/tool_rect_selection.png b/doc/kolourpaint/tool_rect_selection.png Binary files differnew file mode 100644 index 00000000..a85ef3f8 --- /dev/null +++ b/doc/kolourpaint/tool_rect_selection.png diff --git a/doc/kolourpaint/tool_rectangle.png b/doc/kolourpaint/tool_rectangle.png Binary files differnew file mode 100644 index 00000000..a8455de0 --- /dev/null +++ b/doc/kolourpaint/tool_rectangle.png diff --git a/doc/kolourpaint/tool_rectangles.png b/doc/kolourpaint/tool_rectangles.png Binary files differnew file mode 100644 index 00000000..851faf71 --- /dev/null +++ b/doc/kolourpaint/tool_rectangles.png diff --git a/doc/kolourpaint/tool_rounded_rectangle.png b/doc/kolourpaint/tool_rounded_rectangle.png Binary files differnew file mode 100644 index 00000000..4b5a0617 --- /dev/null +++ b/doc/kolourpaint/tool_rounded_rectangle.png diff --git a/doc/kolourpaint/tool_selections.png b/doc/kolourpaint/tool_selections.png Binary files differnew file mode 100644 index 00000000..1b0d09bf --- /dev/null +++ b/doc/kolourpaint/tool_selections.png diff --git a/doc/kolourpaint/tool_spraycan.png b/doc/kolourpaint/tool_spraycan.png Binary files differnew file mode 100644 index 00000000..75b7f748 --- /dev/null +++ b/doc/kolourpaint/tool_spraycan.png diff --git a/doc/kolourpaint/tool_text.png b/doc/kolourpaint/tool_text.png Binary files differnew file mode 100644 index 00000000..ffaab637 --- /dev/null +++ b/doc/kolourpaint/tool_text.png diff --git a/doc/kolourpaint/view_thumbnails.png b/doc/kolourpaint/view_thumbnails.png Binary files differnew file mode 100644 index 00000000..069a0888 --- /dev/null +++ b/doc/kolourpaint/view_thumbnails.png diff --git a/doc/kooka/Makefile.am b/doc/kooka/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kooka/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kooka/index.docbook b/doc/kooka/index.docbook new file mode 100644 index 00000000..c0140d7e --- /dev/null +++ b/doc/kooka/index.docbook @@ -0,0 +1,747 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kooka;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE"> <!-- change language only here --> +]> + +<book lang="&language;"> + +<bookinfo> +<title>The &kooka; Manual</title> + +<authorgroup> +<author> <firstname>Martin</firstname> +<surname>Sommer</surname> +<affiliation><address><email>msommer@suse.de</email></address></affiliation> +</author> +<othercredit role="developer"> +<firstname>Klaas</firstname> +<surname>Freitag</surname> +<affiliation> +<address><email>freitag@suse.de</email></address> +</affiliation> +<contrib>Developer</contrib> +</othercredit> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> + +</authorgroup> + +<copyright> +<year>2002</year> +<holder>Klaas Freitag, Martin Sommer</holder> +</copyright> + +<legalnotice +>&FDLNotice;</legalnotice> + +<date>2002-02-04</date> +<releaseinfo>0.33.00</releaseinfo> + +<abstract><para>&kooka; is a very useful &kde; scanning +application.</para></abstract> + + +<keywordset> +<keyword>KDE</keyword> +<keyword>Scanner</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> + +<para>&kooka; is a &kde; application that enables easy scanning using +<acronym>SANE</acronym> libraries. Therefore,<acronym>SANE</acronym> +the package must be installed to use &kooka;. Clear and concise use +was the focus of its development.</para> + +<para>Character recognition is also provided by the built-in text +recognition program gocr. Install <application>gocr</application> to +use this functionality. After character recognition is complete, the +recognized material can be opened in the text editor &kate; with just +one click, where you can edit the contents.</para> + +</chapter> + +<chapter id="how-to-use"> +<title>Application Instructions</title> + +<para>The web site <ulink +url="http://www.sane-project.org/">http://www.sane-project.org</ulink> +has information about supported scanners. Refer to it before +purchasing a scanner, if possible.</para> + +<sect1 id="screen"> +<title>The &kooka; Main Window</title> + +<screenshot> +<screeninfo>The &kooka; Main Window </screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="kooka_mainctrl.png" format="PNG"/></imageobject> +</mediaobject> + +</screenshot> + +<para>Start &kooka; from a console by simply entering +<userinput><command>kooka</command></userinput>. Create a link on the +&kde; desktop, which uses a scanner icon, if desired.</para> + +<para>The main window in &kooka; consists of three frames. At the top, +see both icon and a menu panels. Use the mouse to enlarge or reduce +the windows as needed.</para> + +<itemizedlist> +<listitem> +<para>The navigation window consists of two tabs, which allow you to +switch between the <guilabel>Preview</guilabel> and the integrated +file browser called the <guilabel>Gallery</guilabel>. The working +folder is displayed in the lower part of the window along with the +folder where the scan will be saved.</para> +</listitem> + +<listitem> +<para>Make your scanner-dependent settings, which are dependent on the +scanner you have connected, in the lower left window. Usually, these +are settings for resolution, brightness and contrast, scanning mode +(⪚, color, gray, or binary), and for gamma values.</para> + +<para>Configure your settings here first. Afterwards, initiate the +preview scan with <guimenuitem>Preview</guimenuitem>. If the +<guilabel>Preview</guilabel> tab in the upper window is selected, see +the results there.</para> + +<para>Select the various formats in the preview image itself to define +the final dimensions. The <guilabel>User</guilabel> setting is +recommended for this, so you select the area to scan in the preview +display with the mouse.</para> + +<para>After this is done, click <guimenu>Scan</guimenu> to scan the +selection made in the preview. After scanning, you will be asked in +which format to save the image whether to make this your standard +format (without being prompted to confirm your selection in the +future).</para> + +<note><para>If you checked that you do not want to be asked about the +save format, the memory assistant will no longer appear. To change the +format some time in the future, select <menuchoice> +<guimenu>Settings</guimenu> <guimenuitem>Configure +Kooka...</guimenuitem> <guimenuitem>Save Image</guimenuitem> +<guimenuitem>Always show memory assistant</guimenuitem> +</menuchoice></para></note> + +</listitem> +<listitem> +<para>The large window shows how the image appears after a final +scan.</para> +</listitem> +</itemizedlist> + +</sect1> + +</chapter> + +<chapter id="commands"> +<title>Command References</title> + +<sect1 id="kooka-toolbar"> +<title>The main &kooka; Toolbar</title> + + +<sect2> +<title>The <guimenu>File</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>P</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Print</guimenuitem> +</menuchoice></term> +<listitem> +<para>Prints the displayed image.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Create Folder...</guimenuitem> +</menuchoice></term> +<listitem> +<para>Create a folder to hold your images.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Save Image</guimenuitem> +</menuchoice></term> +<listitem> +<para>Save the image selected underneath the +<guilabel>Kooka Gallery</guilabel>.</para> +<para>See the <link linkend="save"> Save</link> +section for details.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Delete Image</guimenuitem> +</menuchoice></term> +<listitem> +<para>Delete the image selected underneath the +<guilabel>Kooka Gallery</guilabel>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Unload Image</guimenuitem> +</menuchoice></term> +<listitem> +<para>Remove the image displayed in the <guilabel>Image +Viewer</guilabel>. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Quit</guimenuitem> +</menuchoice></term> +<listitem> +<para>Quit &kooka;.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect2> + +<sect2> +<title>The <guimenu>Image</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>G</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Open image in graphic application</guimenuitem> +</menuchoice></term> +<listitem> +<para>Enter a graphics application for opening your scanned image +directly. Recommended applications include <application>The +GIMP</application>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>OCR image...</guimenuitem> +</menuchoice></term> +<listitem> +<para>Start the window for optical character recognition +(<acronym>OCR</acronym>). If you have <application>gocr</application> +installed, then the path to it should be in the path line. This +starts the character recognition for the preview image or for the +highlighted area.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>OCR on selection...</guimenuitem> +</menuchoice></term> +<listitem> +<para>A window will reappear for the character recognition. Here, +however, the character recognition is only for the area highlighted in +the final scan.</para> +</listitem> +</varlistentry> + + +<varlistentry> +<term> +<menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>I</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Scale to Width</guimenuitem> +</menuchoice></term> +<listitem > +<para>This proportionally scales the image in the large canvas to the +width of the display.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>H</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Scale to Height</guimenuitem> +</menuchoice></term> +<listitem> +<para>Proportionately scales the image to the height of the +display.</para> +</listitem > +</varlistentry> + +<varlistentry> +<term > +<menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Original Size</guimenuitem> +</menuchoice></term> +<listitem> +<para>Restores the original scan size by reducing or enlarging the +image in the display.</para> + +<para>There are additional methods of scaling an image: +<mousebutton>right</mousebutton> click the image display. Redefine the +three named options and set the enlargement itself. This can also be +done in the <guilabel>Preview</guilabel> window.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Create from selection</guimenuitem> +</menuchoice></term> +<listitem> +<para>If the scanned image includes more than you want to appear in the final +image, use this tool to crop your image by marking your selection in +the larger image display to the right then selecting this tool. The +image is cropped according to your selection. You may already be +familiar with this function from <application>The GIMP</application> +crop tool.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>V</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Mirror image vertically</guimenuitem> +</menuchoice></term> +<listitem> +<para>Flip image vertically.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>M</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Mirror image horizontally</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Flip image horizontally.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>B</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Mirror both directions</guimenuitem> +</menuchoice></term> +<listitem> +<para>Flip image both horizontally and vertically.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>R</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Rotate image clockwise</guimenuitem> +</menuchoice></term> +<listitem> +<para>Rotate the image ninety degrees clockwise.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>W</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Rotate image counter-clockwise</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Rotate the image ninety degrees counterclockwise.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>D</keycap></keycombo> +</shortcut> +<guimenu>Image</guimenu> +<guimenuitem>Rotate image 180 degrees</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Rotates image 180 degrees.</para> +</listitem> +</varlistentry> +</variablelist> +</sect2> + +<sect2> +<title>The <guimenu>Settings</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show Toolbar</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Removes the top toolbar to give additional viewing area. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show Statusbar</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Removes the bottom statusbar to give additional viewing area.</para> +</listitem> +</varlistentry> + </variablelist> +</sect2> + +<sect2> +<title>Configuring Shortcuts</title> + +<para>The <menuchoice> +<guimenu>Settings</guimenu><guimenuitem>Configure Shortcuts...</guimenuitem></menuchoice> +allows you to specify key bindings</para> + + +<para>Below is an example of how to configure a short cut for deleting +an image.</para> + +<screenshot> +<screeninfo>Picture of shortcut dialog</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="shortcut0.png" format="PNG"/> + </imageobject> + </mediaobject> +</screenshot> + +<itemizedlist> +<listitem><para> +Click on the custom button. +</para></listitem> + +<listitem><para> +Next click on the primary button. +</para></listitem> + +<listitem><para> +Do <userinput><keycombo +action="seq"><keycap>CTRL</keycap><keycap>X</keycap></keycombo></userinput> +and the dialog should disappear. The keybinding is now entered. +</para></listitem> +</itemizedlist> + +<screenshot> +<screeninfo>Picture of keybinding dialog</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="shortcut1.png" format="PNG"/> + </imageobject> + </mediaobject> +</screenshot> + +<para>Pressing the keys <userinput><keycombo +action="seq"><keycap>CTRL</keycap><keycap>X</keycap></keycombo></userinput> +now deletes the image selected underneath <guilabel>Kooka Gallery</guilabel>. +</para> +</sect2> + +<sect2> +<title>Configuring Toolbars</title> +<para>The <menuchoice> +<guimenu>Settings</guimenu><guimenuitem>Configure Toolbars...</guimenuitem></menuchoice> +Is used to add additional buttons to the toolbars.</para> + +<screenshot> +<screeninfo>Picture of toolbars dialog</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="toolbar.png" format="PNG"/> + </imageobject> + </mediaobject> +</screenshot> + + +<itemizedlist> + +<listitem> +<para>To add a button to the File toolbar, +</para> + +<screenshot> +<screeninfo>Picture of toolbars dialog</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="toolbar1.png" format="PNG"/> + </imageobject> + </mediaobject> +</screenshot> + +<para> make sure <guilabel>Main Toolbar</guilabel> is displayed in +the top combo box. +</para></listitem> + +<listitem><para> +Click on one of the items in the left hand pane. This item will now have a +blue background showing that it has been selected. +</para></listitem> + +<listitem><para> +Next click on the <keysym>Right arrow</keysym> button to place it in +the right pane. +</para></listitem> + +<listitem><para> +Click on <userinput><guilabel>Apply</guilabel></userinput> and then +click on <userinput><guilabel>OK</guilabel></userinput> +</para></listitem> +</itemizedlist> + + +<para>The new Item should be in the toolbar. +<screenshot> +<screeninfo>Picture of toolbars dialog</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="toolbar2.png" format="PNG"/> + </imageobject> + </mediaobject> +</screenshot> +</para> +</sect2> + +<sect2> +<title>Configuring Kooka</title> +<para>The <menuchoice> +<guimenu>Settings</guimenu><guimenuitem>Configure Kooka...</guimenuitem> +</menuchoice> +</para> + + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<guilabel>Kooka Startup Preferences</guilabel> +</menuchoice> +</term> +<listitem> +<para>You may want to uncheck <guilabel>Show the scanner selection box +on next startup</guilabel>, if you have only one scanner. If you +have only one computer you may also want to uncheck +<guilabel>Query network for available scanners</guilabel>. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guilabel>Thumbnail View</guilabel> +</menuchoice> +</term> +<listitem> +<para>Here the size and the shading of the thumbnails can be adjusted; +as well as the background. For example, you might want to reduce the +size of the thumbnails if you are scanning many pages from a book. +</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect2> + + +</sect1> +</chapter> + +<chapter id="save"> +<title>Save</title> +<subtitle>More on Saving Images</subtitle> + +<para>The method for saving an image is somewhat different in &kooka; +than in many other applications. Click the +<guilabel>Gallery</guilabel> tab to open a small file browser. This is +the folder <filename +class="directory">~/.kde/share/apps/ScanImages/</filename> In the +lower portion of the window, your current subfolder in the gallery +is shown. This is where all scanned images are first saved as +files. When starting &kooka; for the first time, you will only see the +<filename class="directory">ScanImages</filename>. Create +subfolders by <mousebutton>right</mousebutton> clicking this +folder. The selected folder, highlighted in blue, is the first save +location of the scanned images. The scans are labeled in ascending +numerical order as in <filename>kscan_0001</filename> and +<filename>kscan_0002</filename>.</para> + +<para>To save an image permanently, <mousebutton>left</mousebutton> +click the name. Next, give a new name and the appropriate ending for +the image format chosen when scanning. If you enter a different +extension, you will get a message that it does not correspond to the +scanned format. Although you can still save the image under this name, +it will retain its original format. At present, +<quote>On-the-fly</quote> conversion is not offered.</para + +><para>If you do not want to use this method of managing your images +in <filename +class="directory">~/.kde/share/apps/ScanImages/</filename>, you can, +of course, save them to another location. To do this, +<mousebutton>right</mousebutton> click the +image name and select <guilabel>Save</guilabel>. Choose any path +here. In addition, close or permanently delete images here.</para> + +<para>To incorporate other images in the gallery, add them in +&konqueror; by dragging and dropping. Open &konqueror; to the +folder containing the desired images. Then add them to the &kooka; +gallery by dragging them and dropping them into the gallery.</para> + +</chapter> + +<chapter id="ocr"> +<title>Character Recognition</title> + +<para>As already mentioned, the <application>gocr</application> must +be installed. Scan a preview of your document in grayscale or +color. You can only scan in binary mode if you have a pure white sheet +of paper with black print. Next, highlight the text to be recognized +in the preview window. Then, do your final scan in binary mode with +<guibutton>Scan</guibutton>.</para> + +<para>Now click the second icon from the left, +<inlinemediaobject><imageobject> + <imagedata fileref="ocr-select.png" format="PNG"/> + </imageobject></inlinemediaobject>, + in the icon panel, +<guilabel>OCR on Selection...</guilabel>, or select +this item in the <guilabel>Image</guilabel> menu. For your +first try, do not change the default settings shown in the emerging +<acronym>OCR</acronym> window. These are usually appropriate and meet +most needs. Now click <guimenuitem>Start character +recognition</guimenuitem>. You will now see a window containing the +<acronym>OCR</acronym> results. The quality depends heavily on that of +the document itself. </para> + +<screenshot> <screeninfo>The gocr Window</screeninfo> <mediaobject> +<imageobject><imagedata fileref="kooka_gocr.png" +format="PNG"/></imageobject> </mediaobject> </screenshot> + +<para>The text can now be opened by clicking the button with the +&kate; editor. After the final scan, mark a selection in the image +display to the right to load just a part of the text or image to the +<acronym>OCR</acronym>. Next, in the icon panel, click the third +button from the right or click in the menu on +<guimenuitem>OCR on selection</guimenuitem>. Now +proceed as described in the previous section.</para > + +<screenshot> +<screeninfo>The Results of the <acronym>OCR</acronym></screeninfo> +<mediaobject> +<imageobject> +<imagedata fileref="kooka_gocr_result.png" +format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +</chapter> + +<chapter id="credits"> +<title>Credits and License</title> + +<para>&kooka;</para> + +<para> Copyright for the application 2001-2002 Klaas Freitag +<email>freitag@suse.de</email></para> + +<para>Copyright for the documentation 2002 Martin Sommer +<email>msommer@suse.de</email></para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL; +&underGPL; + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +&install.intro.documentation; + +&install.compile.documentation; + +</appendix> + +</book> + diff --git a/doc/kooka/kooka_gocr.png b/doc/kooka/kooka_gocr.png Binary files differnew file mode 100644 index 00000000..ab94f75e --- /dev/null +++ b/doc/kooka/kooka_gocr.png diff --git a/doc/kooka/kooka_gocr_result.png b/doc/kooka/kooka_gocr_result.png Binary files differnew file mode 100644 index 00000000..e96bbbed --- /dev/null +++ b/doc/kooka/kooka_gocr_result.png diff --git a/doc/kooka/kooka_mainctrl.png b/doc/kooka/kooka_mainctrl.png Binary files differnew file mode 100644 index 00000000..1e727089 --- /dev/null +++ b/doc/kooka/kooka_mainctrl.png diff --git a/doc/kooka/ocr-select.png b/doc/kooka/ocr-select.png Binary files differnew file mode 100644 index 00000000..db076898 --- /dev/null +++ b/doc/kooka/ocr-select.png diff --git a/doc/kooka/shortcut0.png b/doc/kooka/shortcut0.png Binary files differnew file mode 100644 index 00000000..0e2eff1f --- /dev/null +++ b/doc/kooka/shortcut0.png diff --git a/doc/kooka/shortcut1.png b/doc/kooka/shortcut1.png Binary files differnew file mode 100644 index 00000000..e93bc9b8 --- /dev/null +++ b/doc/kooka/shortcut1.png diff --git a/doc/kooka/toolbar.png b/doc/kooka/toolbar.png Binary files differnew file mode 100644 index 00000000..56675b0b --- /dev/null +++ b/doc/kooka/toolbar.png diff --git a/doc/kooka/toolbar1.png b/doc/kooka/toolbar1.png Binary files differnew file mode 100644 index 00000000..a446a475 --- /dev/null +++ b/doc/kooka/toolbar1.png diff --git a/doc/kooka/toolbar2.png b/doc/kooka/toolbar2.png Binary files differnew file mode 100644 index 00000000..5ec2f725 --- /dev/null +++ b/doc/kooka/toolbar2.png diff --git a/doc/kpdf/Makefile.am b/doc/kpdf/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kpdf/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kpdf/configure.png b/doc/kpdf/configure.png Binary files differnew file mode 100644 index 00000000..bbe89d9f --- /dev/null +++ b/doc/kpdf/configure.png diff --git a/doc/kpdf/index.docbook b/doc/kpdf/index.docbook new file mode 100644 index 00000000..7da3ab5f --- /dev/null +++ b/doc/kpdf/index.docbook @@ -0,0 +1,932 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kpdf "<application>KPDF</application>"> + <!ENTITY kappname "&kpdf;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % English "INCLUDE"> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> + <bookinfo> + <title>The &kpdf; Handbook</title> + <authorgroup> + <author> + <firstname>Albert</firstname> + <surname>Astals Cid</surname> + <affiliation> + <address><email>tsdgeos@yahoo.es</email></address> + </affiliation> + </author> + <author> + <firstname>Titus</firstname> + <surname>Laska</surname> + <affiliation> + <address><email>titus.laska@gmx.de</email></address> + </affiliation> + </author> + <!-- TRANS:ROLES_OF_TRANSLATORS --> + </authorgroup> + <legalnotice>&FDLNotice;</legalnotice> + <date>2006-05-20</date> + <releaseinfo>0.5</releaseinfo> + <!-- Abstract about this handbook --> + <abstract> + <para>&kpdf; is a &kde; PDF viewer based on xpdf code.</para> + </abstract> + <keywordset> + <keyword>KDE</keyword> + <keyword>kpdf</keyword> + <keyword>pdf</keyword> + </keywordset> + </bookinfo> + <chapter id="introduction"> + <title>Introduction</title> + <para>&kpdf; is a &kde; <firstterm>PDF</firstterm> (Portable Document Format) viewer + based on the code of the xpdf application. Although being based on xpdf code, &kpdf; + has some unique features such as continuous mode and presentation support. + </para> + <para> + The PDF format is widely used for publishing documents that are + mostly not meant to be edited again. &kpdf; is only a viewer + for these files and therefore it doesn't provide any functionality + to edit or create PDF documents. + </para> + </chapter> + <chapter id="use"> + <title>Using &kpdf;</title> + <sect1 id="opening"> + <title>Opening Files</title> + <para> + To view a PDF file in &kpdf;, select <menuchoice><guimenu>File</guimenu><guimenuitem>Open... + </guimenuitem></menuchoice>, choose a PDF or PS file in the dialogue and click <guibutton>Open</guibutton>. + Your file should now be displayed in the main window. + </para> + <para> + If you have already opened files in &kpdf; before, you can quickly access them by selecting them in + the <menuchoice><guimenu>File</guimenu><guisubmenu>Open Recent</guisubmenu></menuchoice> menu. + </para> + <para> + After having a file opened you probably want to read it and therefore navigate through it. Click + Next to learn more about this. + </para> + </sect1> + <sect1 id="navigating"> + <title>Navigating</title> + <para>This section describes how you can navigate through a document in &kpdf;.</para> + <para> + There are multiple ways of scrolling the viewing area. One is to use the + <keycap>Up Arrow</keycap> and <keycap>Down Arrow</keycap> keys. You may also use + the scrollbar, your <!--TODO: insert entity, if any-->mousewheel or the <keycap>Page Up</keycap> and <keycap>Page Down</keycap> + keys. + </para> + <para> + Another way is to hold the &LMB; down at any place on the document while dragging the mouse in the + opposite direction of where you want to move. This procedure only works if the Browse Tool is + enabled, which you can select by choosing <menuchoice><guimenu>Tools</guimenu><guimenuitem>Browse Tool + </guimenuitem></menuchoice>. + </para> + <para> + The navigation panel on the left side of the screen enables two more ways of navigating + through a document: + </para> + <itemizedlist> + <listitem> + <para> + If you click on a page thumbnail the viewing area will be brought to + that page. + </para> + </listitem> + <listitem> + <para> + If the document has a table of contents, clicking on a table + of contents item will bring the document to to the page linked to that + item. + </para> + </listitem> + </itemizedlist> + <para> + Some documents have links. In this case you can click on them and the view will + change to the page it links to. If the link is to a web page the default + browser will be invoked. + </para> + <para> + Additionally, you may use the following functionality to quickly move to specific places + in the document: + </para> + <itemizedlist> + <listitem> + <para> + You can go to the first page of the document using + <keycombo action="simul">&Ctrl;<keycap>Home</keycap></keycombo> or + using + <menuchoice> + <guimenu>Go</guimenu> + <guimenuitem>First Page</guimenuitem> + </menuchoice>. + </para> + </listitem> + <listitem> + <para> + You can go to the last page of the document using + <keycombo action="simul">&Ctrl;<keycap>End</keycap></keycombo> or + using + <menuchoice> + <guimenu>Go</guimenu> + <guimenuitem>Last Page</guimenuitem> + </menuchoice>. + </para> + </listitem> + <listitem> + <para> + You can go to the next page of the document using + <keycap>Space</keycap>, the <guibutton>Next Page</guibutton> Toolbar + button or using + <menuchoice> + <guimenu>Go</guimenu> + <guimenuitem>Next Page</guimenuitem> + </menuchoice>. + </para> + </listitem> + <listitem> + <para> + You can go to the previous page of the document using + <keycap>Backspace</keycap>, the <guibutton>Previous Page</guibutton> Toolbar + button or using + <menuchoice> + <guimenu>Go</guimenu> + <guimenuitem>Previous Page</guimenuitem> + </menuchoice>. + </para> + </listitem> + </itemizedlist> + </sect1> + <sect1 id="presentationMode"> + <title>Presentation Mode</title> + <para> + The Presentation mode represents another way to view PDF documents in &kpdf;. It can be + enabled in + <menuchoice><guimenu>View</guimenu><guimenuitem>Presentation</guimenuitem></menuchoice>. + It shows the document on a page per page basis. The pages are shown with + zoom to page, that means all the page is visible. + </para> + <note> + <para> + PDF documents can even specify that they are always opened in presentation mode. + </para> + </note> + <para> + To navigate between + pages you may use the &LMB; (next page) and the &RMB; (previous page), the mouse + wheel, the arrow icons that appear as soon as you move the mouse cursor to the top of the screen, + or the keys specified in the <link linkend="navigating">Navigating</link> + section. + </para> + <para> + You can exit presentation mode at any time by pressing the <keycap>ESC</keycap> key or clicking + the <guiicon>Quit</guiicon> icon appearing if you move the mouse cursor to the top of the + screen. + </para> + <para> + Presentation mode has some configuration options, you can find their + description at <link linkend="configpresentation">Configuring &kpdf;</link>. + </para> + </sect1> + </chapter> + + <chapter id="primary-menu-items"> + <title>The Menubar</title> + + <sect1 id="menufile"> + <title>The <guimenu>File</guimenu> Menu</title> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <shortcut> + <keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo> + </shortcut> + <guimenu>File</guimenu> + <guimenuitem>Open...</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action>Open</action> a PDF or PS file. If there is already an opened file it will be closed. + For more information, see the section about <link linkend="opening">Opening Files</link>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <menuchoice> + <guimenu>File</guimenu> + <guimenuitem>Open Recent</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action>Open</action> a file which was used previously from a + submenu. If a file is currently being displayed it + will be closed. For more information, see the section about + <link linkend="opening">Opening Files</link>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <menuchoice> + <guimenu>File</guimenu> + <guimenuitem>Save As...</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Save</action> the currently open file under a different name.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl;<keycap>P</keycap></keycombo></shortcut> + <guimenu>File</guimenu> + <guimenuitem>Print...</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action>Print</action> the currently displayed document. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <menuchoice> + <guimenu>File</guimenu> + <guimenuitem>Print Preview...</guimenuitem> + </menuchoice> + </term> + <listitem> + <para> + <action>Show a preview</action> of how the currently displayed + document would be printed with the default options. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <menuchoice> + <guimenu>File</guimenu> + <guimenuitem>Properties</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Display some basic information</action> about the document, such as + title, author, creation date, and details about the fonts used.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl; <keycap>Q</keycap></keycombo></shortcut> + <guimenu>File</guimenu> + <guimenuitem>Quit</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Close</action> &kpdf;.</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + + <sect1 id="menuedit"> + <title>The <guimenu>Edit</guimenu> Menu</title> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl; <keycap>F</keycap></keycombo></shortcut> + <guimenu>Edit</guimenu> + <guimenuitem>Find...</guimenuitem> + </menuchoice> + </term> + <listitem> + <para>Open a dialogue that allows you to <action>search for a string in + the document</action>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <menuchoice> + <shortcut><keycap>F3</keycap></shortcut> + <guimenu>Edit</guimenu> + <guimenuitem>Find Next</guimenuitem> + </menuchoice> + </term> + <listitem> + <para>Try to <action>find the previous searched string again</action> in the document.</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + + <sect1 id="menuview"> + <title>The <guimenu>View</guimenu> Menu</title> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>P</keycap></keycombo></shortcut> + <guimenu>View</guimenu> + <guimenuitem>Presentation</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Activates</action> the Presentation Mode. For more information, see the + section about <link linkend="presentationMode">Presentation Mode</link>.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl;<keycap>+</keycap></keycombo></shortcut> + <guimenu>View</guimenu> + <guimenuitem>Zoom In</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Increase the magnification</action> of the document view.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl;<keycap>-</keycap></keycombo></shortcut> + <guimenu>View</guimenu> + <guimenuitem>Zoom Out</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Decrease the magnification</action> of the document view.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <guimenu>View</guimenu> + <guimenuitem>Fit to Page Width</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Change the magnification</action> of the document + view to a value that makes the pages' width equal to the document + view's width.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <guimenu>View</guimenu> + <guimenuitem>Fit to Page</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Change the magnification</action> of the document view + to a value that makes at least one whole page visible.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <guimenu>View</guimenu> + <guimenuitem>Continuous</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Enable the continuous page mode</action>. In continuous mode, + all pages of the document are shown, and you can scroll through + them without having to use the <menuchoice><guimenu>Go</guimenu> + <guimenuitem>Previous Page</guimenuitem></menuchoice> and + <menuchoice><guimenu>Go</guimenu><guimenuitem>Next Page</guimenuitem> + </menuchoice> options.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <guimenu>View</guimenu> + <guimenuitem>Two Pages</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Enable the two page mode</action>, which shows two pages of + the document next to each other..</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + + <sect1 id="menugo"> + <title>The <guimenu>Go</guimenu> Menu</title> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycap>Backspace</keycap></shortcut> + <guimenu>Go</guimenu> + <guimenuitem>Previous Page</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>View the previous page</action> of the document.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycap>Space</keycap></shortcut> + <guimenu>Go</guimenu> + <guimenuitem>Next Page</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>View the next page</action> of the document.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl; <keycap>Home</keycap></keycombo></shortcut> + <guimenu>Go</guimenu> + <guimenuitem>First Page</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Go to the first page</action> of the document.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl; <keycap>End</keycap></keycombo></shortcut> + <guimenu>Go</guimenu> + <guimenuitem>Last Page</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Go to the last page</action> of the document.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Alt; <keycap>Left</keycap></keycombo></shortcut> + <guimenu>Go</guimenu> + <guimenuitem>Back</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Go back to the previous view</action> of the document.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Alt;<keycap>Right</keycap></keycombo></shortcut> + <guimenu>Go</guimenu> + <guimenuitem>Forward</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Move forward to the next view</action> of the document. This only works if you have already moved back before.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl;<keycap>G</keycap></keycombo></shortcut> + <guimenu>Go</guimenu> + <guimenuitem>Go to Page</guimenuitem> + </menuchoice> + </term> + <listitem> + <para>Open a dialog which allows you to <action>go to any page</action> of the document.</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + + <sect1 id="menutools"> + <title>The <guimenu>Tools</guimenu> Menu</title> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <guimenu>Tools</guimenu> + <guimenuitem>Browse Tool</guimenuitem> + </menuchoice> + </term> + <listitem> + <para>The mouse will have its normal behaviour, &LMB; for dragging the document and following links and &RMB; for adding bookmarks and fit to width.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <guimenu>Tools</guimenu> + <guimenuitem>Zoom Tool</guimenuitem> + </menuchoice> + </term> + <listitem> + <para>The mouse will work as a zoom tool. Clicking &LMB; and dragging will zoom the view to the selected area, clicking &RMB; will bring the document back to the previous zoom.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <guimenu>Tools</guimenu> + <guimenuitem>Select Tool</guimenuitem> + </menuchoice> + </term> + <listitem> + <para>The mouse will work as a select tool. In that mode clicking &LMB; and dragging will give the option of copying the text/image of current the selected area to the clipboard, speak a text or to save an image to a file.</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + + <sect1 id="settings-menu"> + <title>The <guimenu>Settings</guimenu> Menu</title> + <variablelist> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl;<keycap>M</keycap></keycombo></shortcut> + <guimenu>Settings</guimenu> + <guimenuitem>Show/Hide Menubar</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Toggle the Menubar display</action> on and off. Once + hidden it can be made visible using the &RMB; menu.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <guimenu>Settings</guimenu> + <guimenuitem>Show/Hide Toolbar</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Toggle the Toolbar display</action> on and off.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl;<keycap>L</keycap></keycombo></shortcut> + <guimenu>Settings</guimenu> + <guimenuitem>Show/Hide Navigation Panel</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Toggle the navigation panel</action> on and off.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <shortcut><keycombo action="simul">&Ctrl;&Shift;<keycap>F</keycap></keycombo></shortcut> + <guimenu>Settings</guimenu> + <guimenuitem>Full Screen Mode</guimenuitem> + </menuchoice> + </term> + <listitem> + <para><action>Enables the full screen mode</action>. Note that + full screen mode is different from <link + linkend="presentationMode">presentation mode</link> insofar as the + only peculiarity of full screen mode is that it hides the window + decorations, the menubar and the toolbar.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <guimenu>Settings</guimenu> + <guimenuitem>Configure Shortcuts...</guimenuitem> + </menuchoice> + </term> + <listitem> + <para>Opens a window that lets you <action>configure the keyboard + shortcuts</action> for many menu commands.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <guimenu>Settings</guimenu> + <guimenuitem>Configure Toolbars...</guimenuitem> + </menuchoice> + </term> + <listitem> + <para>Opens a window that lets you choose which icons are visible + in the toolbar.</para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <menuchoice> + <guimenu>Settings</guimenu> + <guimenuitem>Configure &kpdf;...</guimenuitem> + </menuchoice> + </term> + <listitem> + <para>Opens the <link linkend="configure">Configure</link> + window.</para> + </listitem> + </varlistentry> + + </variablelist> + </sect1> + <sect1 id="menuhelp"> + <title>The <guimenu>Help</guimenu> Menu</title> + &help.menu.documentation; + </sect1> + + </chapter> + <chapter id="configure"> + <title>Configuring &kpdf;</title> + <sect1 id="configindex"> + <title>Overview</title> + <para> + You can configure &kpdf; by choosing <menuchoice><guimenu>Settings</guimenu> + <guimenuitem>Configure &kpdf;...</guimenuitem></menuchoice>. + The configuration dialogue is split into four sections. This chapter describes the available + options in detail. + </para> + <itemizedlist> + <listitem> + <para><link linkend="configgeneral">General</link></para> + </listitem> + <listitem> + <para><link linkend="configaccessibility">Accessibility</link></para> + </listitem> + <listitem> + <para><link linkend="configperformance">Performance</link></para> + </listitem> + <listitem> + <para><link linkend="configpresentation">Presentation</link></para> + </listitem> + </itemizedlist> + <screenshot> + <screeninfo>The configuration dialogue</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="configure.png" format="PNG" /> + </imageobject> + <textobject> + <phrase>The configuration dialogue</phrase> + </textobject> + </mediaobject> + </screenshot> + </sect1> + <sect1 id="configgeneral"> + <title>General</title> + <variablelist> + <varlistentry> + <term>Show search bar in thumbnails list</term> + <listitem> + <para>Whether to the show a search bar in the thumbnails view or not. That + search bar is useful for filtering pages that contain a given + string.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Link thumbnails list with the page</term> + <listitem> + <para>Whether the thumbnails view should always display the current + page or not.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Show scrollbars</term> + <listitem> + <para>Whether to show scrollbars for the document view.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Show hints and info messages</term> + <listitem> + <para>Whether to show some informative messages on startup, file + load, etc.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Obey DRM limitations</term> + <listitem> + <para>Whether &kpdf; should obey <firstterm>DRM</firstterm> (Digital Rights Management) restrictions. DRM limitations are used to make it impossible to perform certain actions with PDF documents, such as copying content to the clipboard. Note that in some configurations of &kpdf;, this option is not available.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Watch file</term> + <listitem> + <para>Whether opened files should be automatically checked for + changes and updated, if necessary.</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + <sect1 id="configaccessibility"> + <title>Accessibility</title> + <variablelist> + <varlistentry> + <term>Draw border around images</term> + <listitem> + <para>Whether to draw a border around images.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Draw border around links</term> + <listitem> + <para>Whether to draw a border around links.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Change colors</term> + <listitem> + <para><action>Enables</action> the color changing options.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Invert colors</term> + <listitem> + <para><action>Inverts</action> colors on the view, &ie; black objects will be shown white.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Change paper color</term> + <listitem> + <para><action>Changes</action> the paper's color, &ie; the document's background.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Change dark and light colors</term> + <listitem> + <para><action>Changes</action> the dark and light color to your preference, that means + black will not be rendered as black but as the selected dark color and white + will not be rendered as white but as the selected light color.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Convert to black and white</term> + <listitem> + <para><action>Converts</action> the document to black and white. You can set the + threshold and the contrast. Setting the threshold to a higher value + will result in darker grays used.</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + <sect1 id="configperformance"> + <title>Performance</title> + <variablelist> + <varlistentry> + <term>Enable transparency effects</term> + <listitem> + <para>Draw selections and other special graphics using + transparency effects. Disable the option to draw them using + outline or opaque fill styles and increase speed on selections.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Enable background generation</term> + <listitem> + <para>Use a background thread to generate the pages. By disabling + this option the user interface will become less reactive (will be blocked + if necessary), but pages will be displayed a bit faster.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Memory usage profiles</term> + <listitem> + <para>&kpdf; can achieve best performance by tuning the memory usage, based on your system and your tastes. + The more memory you let it to use, the faster the program will behave. The Default profile is good + for every system, but you can prevent &kpdf; from using more memory than necessary by selecting the Low + profile, or let it get the most out of your system using Aggressive.</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + <sect1 id="configpresentation"> + <title>Presentation</title> + <variablelist> + <varlistentry> + <term>Advance every</term> + <listitem> + <para>Enables automatic advancing of pages given a time period.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Loop after last page</term> + <listitem> + <para>When navigating on presentation mode and going past the last page the first page will appear.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Background color</term> + <listitem> + <para>The color that will fill the part of the screen not covered by the page when on presentation mode.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Default transition</term> + <listitem> + <para>The transition effect between page and page if the document does not specify one. Set this to <guilabel>Random + Transition</guilabel> to make &kpdf; randomly choose one of the available effects.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Mouse cursor</term> + <listitem> + <para>Whether the mouse should be always hidden, always shown or hidden after a small time of inactivity.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Show progress indicator</term> + <listitem> + <para>Whether to show a progress circle that shows the current page and the total number of pages on the upper + right corner of the presentation screen everytime you change the page.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Show summary page</term> + <listitem> + <para>Whether to show a summary page at the beginning of the presentation with the title, author and number of pages of the document.</para> + </listitem> + </varlistentry> + </variablelist> + </sect1> + </chapter> + <chapter id="credits"> + <title>Credits and License</title> + + <itemizedlist> + <title>Program Copyright:</title> + <listitem><para>Albert Astals Cid<email>tsdgeos@yahoo.es</email> Current maintainer</para></listitem> + <listitem><para>Christophe Devriese<email>oelewapperke@ulyssis.org</email></para></listitem> + <listitem><para>&Wilco.Greven; &Wilco.Greven.mail; Original author</para></listitem> + <listitem><para>Enrico Ros<email>eros.kde@email.it</email> Refactoring for 3.4</para></listitem> + <listitem><para>Laurent Montel<email>montel@kde.org</email></para></listitem> + </itemizedlist> + + <itemizedlist> + <title>Documentation Copyright:</title> + <listitem><para>Albert Astals Cid<email>tsdgeos@yahoo.es</email> Author</para></listitem> + <listitem><para>Titus Laska<email>titus.laska@gmx.de</email> Some updates and additions</para></listitem> + </itemizedlist> + <!-- TRANS:CREDIT_FOR_TRANSLATORS --> + &underFDL; + &underGPL; + </chapter> + + <appendix id="installation"> + <title>Installation</title> + <sect1 id="getting-kapp"> + <title>How to obtain &kpdf;</title> + &install.intro.documentation; + </sect1> + <sect1 id="compilation"> + <title>Compilation and Installation</title> + <note> + <para> + If you are reading this help in the &khelpcenter;, &kpdf; has already been + installed on this system and you do not need install it anymore. + </para> + </note> + &install.compile.documentation; + </sect1> + </appendix> + &documentation.index; +</book> + + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +// vim:ts=2:sw=2:tw=78:noet +--> diff --git a/doc/kpovmodeler/Makefile.am b/doc/kpovmodeler/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kpovmodeler/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kpovmodeler/cameraview.png b/doc/kpovmodeler/cameraview.png Binary files differnew file mode 100644 index 00000000..0003ea84 --- /dev/null +++ b/doc/kpovmodeler/cameraview.png diff --git a/doc/kpovmodeler/controlpoints.png b/doc/kpovmodeler/controlpoints.png Binary files differnew file mode 100644 index 00000000..88cd490d --- /dev/null +++ b/doc/kpovmodeler/controlpoints.png diff --git a/doc/kpovmodeler/cr22-action-pmcamera.png b/doc/kpovmodeler/cr22-action-pmcamera.png Binary files differnew file mode 100644 index 00000000..51e3079a --- /dev/null +++ b/doc/kpovmodeler/cr22-action-pmcamera.png diff --git a/doc/kpovmodeler/cr22-action-pmcolorlist.png b/doc/kpovmodeler/cr22-action-pmcolorlist.png Binary files differnew file mode 100644 index 00000000..b94946d3 --- /dev/null +++ b/doc/kpovmodeler/cr22-action-pmcolorlist.png diff --git a/doc/kpovmodeler/cr22-action-pmfinish.png b/doc/kpovmodeler/cr22-action-pmfinish.png Binary files differnew file mode 100644 index 00000000..070f16d1 --- /dev/null +++ b/doc/kpovmodeler/cr22-action-pmfinish.png diff --git a/doc/kpovmodeler/cr22-action-pminterior.png b/doc/kpovmodeler/cr22-action-pminterior.png Binary files differnew file mode 100644 index 00000000..d3c3a66f --- /dev/null +++ b/doc/kpovmodeler/cr22-action-pminterior.png diff --git a/doc/kpovmodeler/cr22-action-pmlight.png b/doc/kpovmodeler/cr22-action-pmlight.png Binary files differnew file mode 100644 index 00000000..ebb36242 --- /dev/null +++ b/doc/kpovmodeler/cr22-action-pmlight.png diff --git a/doc/kpovmodeler/cr22-action-pmpigment.png b/doc/kpovmodeler/cr22-action-pmpigment.png Binary files differnew file mode 100644 index 00000000..6a2103d0 --- /dev/null +++ b/doc/kpovmodeler/cr22-action-pmpigment.png diff --git a/doc/kpovmodeler/cr22-action-pmplane.png b/doc/kpovmodeler/cr22-action-pmplane.png Binary files differnew file mode 100644 index 00000000..f5430a72 --- /dev/null +++ b/doc/kpovmodeler/cr22-action-pmplane.png diff --git a/doc/kpovmodeler/cr22-action-pmrender.png b/doc/kpovmodeler/cr22-action-pmrender.png Binary files differnew file mode 100644 index 00000000..6aa2b69f --- /dev/null +++ b/doc/kpovmodeler/cr22-action-pmrender.png diff --git a/doc/kpovmodeler/cr22-action-pmsolidcolor.png b/doc/kpovmodeler/cr22-action-pmsolidcolor.png Binary files differnew file mode 100644 index 00000000..e8cbfc51 --- /dev/null +++ b/doc/kpovmodeler/cr22-action-pmsolidcolor.png diff --git a/doc/kpovmodeler/cr22-action-pmsphere.png b/doc/kpovmodeler/cr22-action-pmsphere.png Binary files differnew file mode 100644 index 00000000..bb9b6f2d --- /dev/null +++ b/doc/kpovmodeler/cr22-action-pmsphere.png diff --git a/doc/kpovmodeler/defaultviewlayout.png b/doc/kpovmodeler/defaultviewlayout.png Binary files differnew file mode 100644 index 00000000..cb7f3af5 --- /dev/null +++ b/doc/kpovmodeler/defaultviewlayout.png diff --git a/doc/kpovmodeler/dockwidget.png b/doc/kpovmodeler/dockwidget.png Binary files differnew file mode 100644 index 00000000..aac95037 --- /dev/null +++ b/doc/kpovmodeler/dockwidget.png diff --git a/doc/kpovmodeler/dockwidgettab.png b/doc/kpovmodeler/dockwidgettab.png Binary files differnew file mode 100644 index 00000000..f0e76f91 --- /dev/null +++ b/doc/kpovmodeler/dockwidgettab.png diff --git a/doc/kpovmodeler/index.docbook b/doc/kpovmodeler/index.docbook new file mode 100644 index 00000000..f6551595 --- /dev/null +++ b/doc/kpovmodeler/index.docbook @@ -0,0 +1,2100 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kpovmodeler;"> + <!ENTITY package "kdegraphics"> + <!ENTITY Povray "<application>POV-Ray</application>"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title>The &kpovmodeler; Handbook</title> + +<authorgroup> +<author> +<firstname>Lauri</firstname> +<surname>Watts</surname> +<affiliation> +<address><email>lauri@kde.org</email></address> +</affiliation> +</author> + +<author> +<firstname>Andreas</firstname> +<surname>Zehender</surname> +<affiliation> +<address><email>zehender@kde.org</email></address> +</affiliation> +</author> + +<author> +<firstname>Olivier</firstname> +<surname>Saraja</surname> +<affiliation> +<address><email>olivier@linuxgraphic.org</email></address> +</affiliation> +</author> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> +</authorgroup> + +<legalnotice>&FDLNotice;</legalnotice> + +<date>2002-09-07</date> +<releaseinfo>1.00.00</releaseinfo> + +<abstract> +<para> +&kpovmodeler; is a graphical 3D modeler, which can generate scenes for +&Povray; +</para> +</abstract> + +<keywordset> +<keyword>KDE</keyword> +<keyword>KPovModeler</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> + +<para>&kpovmodeler; is a 3D modeling application to generate &Povray; +scenes.</para> + +<para>While it is not necessary to fully understand the &Povray; +application in order to make good use of &kpovmodeler;, it is highly +recommended that you read and try to understand the &Povray; +documentation.</para> + +<para>To find out more about &Povray; go to +<ulink url="http://www.povray.org">www.povray.org</ulink>.</para> + +</chapter> + +<chapter id="the-interface"> +<title>The &kpovmodeler; Interface</title> + +<para>When you start &kpovmodeler;, the default layout is as +follows:</para> + +<screenshot> +<screeninfo>The default view layout</screeninfo> +<mediaobject> +<imageobject><imagedata fileref="defaultviewlayout.png" format="PNG"/></imageobject> +<textobject><phrase>The default view layout</phrase></textobject> +</mediaobject> +</screenshot> + +<itemizedlist> +<listitem> +<para><link linkend="menu-reference">Menubars (1)</link></para> +</listitem> +<listitem> +<para>Toolbars (2)</para> +</listitem> +<listitem> +<para><link linkend="the-object-tree">The object tree (3)</link></para> +</listitem> +<listitem> +<para><link linkend="the-properties-view">The object properties +view (4)</link></para> +</listitem> +<listitem> +<para><link linkend="the-wireframe-views">The wireframe and camera views (5)</link></para> +</listitem> +</itemizedlist> + +<sect1 id="the-object-tree"> +<title>The Object Tree</title> + +<para>The object tree displays the objects inside the scene and their hierarchy.</para> +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="objecttree.png" format="PNG"/></imageobject> +<textobject><phrase>The object tree</phrase></textobject> +</mediaobject> +</screenshot> + +<sect2 id="object-tree-selecting-object"> +<title>Selecting Objects</title> +<para>In the object tree you can select objects. Once you select an object, its attributes +are displayed in the +<link linkend="the-properties-view">properties view</link> and rendered yellow in the +<link linkend="the-wireframe-views">wireframe views</link>.</para> + +<para>You can select multiple objects. However, you cannot select a child of an already +selected object, because all children are selected indirectly with the parent.</para> + +<para>If only one object is selected, it is referred to as <quote>the active object</quote> from now on.</para> +</sect2> + +<sect2 id="object-tree-add-objects"> +<title>Adding new Objects</title> + +<para>To add a new object to the object tree, select the object where you want to +insert the new object and either click the icon in the toolbar or choose a menu entry +in the <guimenu>Insert</guimenu> menu.</para> + +<para>There are three possible positions for new objects:</para> +<itemizedlist> +<listitem><para>As the first child of the active object</para></listitem> +<listitem><para>As the last child of the active object</para></listitem> +<listitem><para>As a sibling of the active object</para></listitem> +</itemizedlist> + +<para>If there is more than one position possible, the following popup menu prompts +you to select the correct position:</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="insertaspopup.png" format="PNG"/></imageobject> +<textobject><phrase>The insert position popup</phrase></textobject> +</mediaobject> +</screenshot> + +</sect2> + +<sect2 id="object-tree-remove-objects"> +<title>Removing Objects</title> +<para>To remove objects, select them and select <guimenuitem>Delete</guimenuitem> from +either the <guimenu>Edit</guimenu> menu or the &RMB; context menu.</para> +</sect2> + +<sect2 id="object-tree-move-objects"> +<title>Moving Objects</title> +<para>To move objects, drag and drop the selected objects on to the object tree.</para> +<para>You can cut the object and insert it at the new position as well.</para> +</sect2> + +</sect1> + +<sect1 id="the-properties-view"> +<title>The Properties View</title> + +<para>The properties view displays the attributes of the active object.</para> +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="objectpropertiesview.png" format="PNG"/></imageobject> +<textobject><phrase>The properties view</phrase></textobject> +</mediaobject> +</screenshot> + +<para>If you changed some properties, click the <guibutton>Apply</guibutton> button to +make the changes permanent. If you entered invalid data, a message box will show up with +an error description. You can then adjust the properties and press +<guibutton>Apply</guibutton> again, or revert your changes with the +<guibutton>Cancel</guibutton> button.</para> +<para>If you set the path to your &Povray; user documentation in the +<link linkend="configure-povray-tab">settings dialog</link>, you can open the +&Povray; reference page for the displayed object with the <guibutton>Help</guibutton> +button. +</para> + +<note><para>You need the &Povray; 3.1g or 3.5 HTML user documentation in order to use this feature. +If your distribution does not contain this documentation you can download it +<ulink url="ftp://ftp.povray.org/pub/povray/Old-Versions/Official-3.1g/Docs/povhtml.zip">here</ulink>. +The &Povray; 3.5 package contains the html user documentation.</para> +</note> + +<para>If you edit a texture or a part of a texture, you can preview it inside the properties view.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="texturepreview.png" format="PNG"/></imageobject> +<textobject><phrase>The properties view, texture preview</phrase></textobject> +</mediaobject> +</screenshot> + +<para>Press the <guibutton>Preview</guibutton> button inside the properties view and a +small sample scene with the selected texture will be rendered. By default the whole texture +will be rendered, even if not the top item is selected. If you want to render only a part of +the texture (for example a texture inside a texture map and not the whole texture map), check the +<guilabel>local</guilabel> check box.</para> + +</sect1> + +<sect1 id="the-wireframe-views"> +<title>The Wireframe Views</title> + +<sect2 id="orthographic-views"> +<title>The Orthographic Views</title> + +<para>The orthographic wireframe views show the scene as an orthographic +projection on one of the coordinate planes.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="topview.png" format="PNG"/></imageobject> +<textobject><phrase>The top wireframe view</phrase></textobject> +</mediaobject> +</screenshot> + +<para>There are six types of orthographic wireframes views:</para> +<itemizedlist> +<listitem><para>Top</para></listitem> +<listitem><para>Bottom</para></listitem> +<listitem><para>Left</para></listitem> +<listitem><para>Right</para></listitem> +<listitem><para>Front</para></listitem> +<listitem><para>Back</para></listitem> +</itemizedlist> + +<para>Each type renders the scene from a different perspective.</para> + +<sect3 id="graphical-change"> +<title>Graphical Attribute Changes</title> +<para>In the orthographic views you can change object attribute +properties graphically with the mouse.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="controlpoints.png" format="PNG"/></imageobject> +<textobject><phrase>The control points of the camera object</phrase></textobject> +</mediaobject> +</screenshot> + +<para>The above screenshot shows the control points of the camera. +You can drag the control points around to change the camera's position and direction.</para> + +<para>If a transformation is selected, the control points are removed and a small cross is +displayed in the wireframe view. The cross marks the center for scaling and rotation, +as well as the position for translations. You can change the transformation with the mouse +by dragging inside the whole view.</para> + +<para>Some objects like the bicubic patch support selection and modification of multiple +control points.</para> + +<informaltable> +<tgroup cols="2"><tbody> +<row> + <entry>&LMB;</entry> + <entry>Selects one control point and deselects all others</entry> +</row> +<row> + <entry><keycombo + action="click">&Ctrl;<mousebutton>Left</mousebutton></keycombo> + Mouse Button</entry> + <entry>Selects or deselects one control point</entry> +</row> +<row> + <entry><keycombo + action="click">&Shift;<mousebutton>Left</mousebutton></keycombo> + Mouse Button</entry> + <entry>Drag a rectangle. All control points inside the rectangle are + selected, the others deselected</entry> +</row> +<row> + <entry><keycombo + action="click">&Shift;&Ctrl;<keycap>Left</keycap></keycombo> Mouse Button</entry> + <entry>Drag a rectangle. All control points inside the rectangle are selected</entry> +</row> +</tbody></tgroup> +</informaltable> + +</sect3> + +<sect3 id="display-window-selection"> +<title>Display Window Selection</title> +<para>You can zoom and translate the view to change the display window.</para> +<informaltable> +<tgroup cols="2"><tbody> +<row> + <entry>&MMB;</entry> + <entry>Translates the view</entry> +</row> +<row> + <entry><mousebutton>wheel</mousebutton></entry> + <entry>Zooms the view around the mouse position</entry> +</row> +<row> + <entry><keycap>Left</keycap>, <keycap>Right</keycap>, <keycap>Up</keycap>, <keycap>Down</keycap> </entry> + <entry>Translates the view</entry> +</row> +<row> + <entry><keycombo action="simul"><keycap>Ctrl</keycap><keycap>Left</keycap></keycombo>, + <keycombo action="simul"><keycap>Ctrl</keycap><keycap>Right</keycap></keycombo></entry> + <entry>Zooms the view</entry> +</row> +</tbody></tgroup> +</informaltable> + +</sect3> + +</sect2> + +<sect2 id="camera-view"> +<title>The Camera View</title> + +<para>The camera view displays the scene from the camera's point of view.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="cameraview.png" format="PNG"/></imageobject> +<textobject><phrase>The camera view</phrase></textobject> +</mediaobject> +</screenshot> + +<para>The blue box displays the field of view when the scene is rendered.</para> + +<para>You cannot change control points in the camera view.</para> + +</sect2> + +<sect2 id="visibility-levels"> +<title>Visibility Levels</title> + +<para>By default all objects are displayed in the wireframe views.</para> +<para>Each object with a wire frame has a visibility level. +You can specify a visibility level relative to the parent's visibility level +or an absolute value. Objects are only displayed if they are selected or their visibility +level is smaller or equal the chosen scene visibility level in the +toolbar.</para> + +</sect2> + +</sect1> + + +<sect1 id="view-layouts"> +<title>View Layouts</title> + +<para>&kpovmodeler; comes with a default view layout: The object tree and +the object properties view to the left and four graphical views to the right.</para> + +<para>If you don't like the default layout, or need another layout, you can freely +configure it. You can even save multiple view layouts and switch between them +on the fly.</para> + +<sect2 id="change-the-view-layout"> +<title>Modifying the View Layout</title> + +<para>You can move the existing views by dragging the handle on top of the +views around.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="dockwidget.png" format="PNG"/></imageobject> +<textobject><phrase>The dock widget handle</phrase></textobject> +</mediaobject> +</screenshot> + +<para>To dock a widget above or below an existing view, drag the handle to +the top or bottom of a view. A rectangle will indicate the new position.</para> +<para>To create a new column, drag the handle to the right or left side +of another view. The view will then dock to the left or right side of the +view and span the full height.</para> +<para>If you want multiple views sharing the same space, drag the handle to +the center of another view. You can then switch between the views by +clicking the corresponding tab on top of the views.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="dockwidgettab.png" format="PNG"/></imageobject> +<textobject><phrase>The tabbed view layout</phrase></textobject> +</mediaobject> +</screenshot> + +<para>The last layout possibility are floating views: views that +are not docked into the main view. To undock a view, drag the handle to the +desktop or press the little arrow in the view handle that points to the +top left side.</para> + +<para>To close a view, click the little cross in the handle. To prevent closing, +click the little box between the arrow and the cross.</para> + +<para>You can add additional views to the main window. The <guimenu>View</guimenu> +menu contains entries for each type of view. New views will be created floating, +which you can dock wherever you like.</para> + +</sect2> + +<sect2 id="save-a-view-layout"> +<title>Saving a View Layout</title> + +<para>You can save the current view layout with +<menuchoice> +<guimenu>View</guimenu> +<guimenuitem>Save View Layout...</guimenuitem> +</menuchoice> A dialog opens that lets you select an existing layout +or create a new one.</para> + +<para>You can then fine-tune your view layout in the +<link linkend="configure-view-layout-tab">settings dialog</link>. + +</para> +</sect2> + +<sect2 id="switching-between-view-layout"> +<title>Switching between View Layouts</title> +<para>You can switch to a saved view layout by selecting the entry in the +<menuchoice><guimenu>View</guimenu><guimenuitem>View Layout</guimenuitem></menuchoice> +menu.</para> + +</sect2> + +</sect1> + +</chapter> + + +<chapter id="povray-interaction"> +<title>&Povray; Interaction</title> + +<sect1 id="rendering-the-scene"> +<title>Rendering the Scene</title> + +<para>Once you have created a scene, you will want to render it. &kpovmodeler; +uses &Povray; 3.1g to render the scene, so you need a correct installation of &Povray;. +At the time of writing &Povray; 3.5 was released. This version is not supported in +the &kpovmodeler; 1.0 version.</para> +<para>Go to <ulink url="http://www.povray.org">www.povray.org</ulink> +to get a version of &Povray; and for installation instructions.</para> + +<para>To render the current scene, press the render icon +<inlinemediaobject> +<imageobject><imagedata fileref="rendericon.png" format="PNG"/></imageobject> +<textobject><phrase>The render icon</phrase></textobject> +</inlinemediaobject> +in the toolbar, or select the +<menuchoice><guimenu>View</guimenu><guimenuitem>Render</guimenuitem></menuchoice> +menu entry.</para> + +<sect2 id="render-modes"> +<title>Render Modes</title> + +<para>A render mode is similar to &Povray;s ini file entries. It specifies the image size +and quality levels for rendering. If you would like to render your scene with different +qualities and sizes, you can add as many render modes as you need, from quick previews +to fullscreen high quality images.</para> + +<sect3 id="render-modes-configuration"> +<title>Render Modes Configuration</title> + +<para>When you press the render settings icon +<inlinemediaobject> +<imageobject><imagedata fileref="rendersettingsicon.png" format="PNG"/></imageobject> +<textobject><phrase>The render settings</phrase></textobject> +</inlinemediaobject> +in the toolbar or select the +<menuchoice><guimenu>View</guimenu><guimenuitem>Render Modes...</guimenuitem></menuchoice> +menu icon, the following dialog opens:</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="rendermodesselection.png" format="PNG"/></imageobject> +<textobject><phrase>The render modes selection dialog</phrase></textobject> +</mediaobject> +</screenshot> + +<para>This dialog shows the list of all available render modes.</para> + +<variablelist> + +<varlistentry><term><guibutton>Add</guibutton></term> +<listitem><para><action>Adds a default render mode to the list</action>.</para> +</listitem> +</varlistentry> + +<varlistentry><term><guibutton>Remove</guibutton></term> +<listitem><para><action>Removes the selected render mode</action>.</para> +</listitem> +</varlistentry> + +<varlistentry><term><guibutton>Edit</guibutton></term> +<listitem><para><action>Opens a dialog to edit the selected render mode</action>.</para> +</listitem> +</varlistentry> + +<varlistentry><term><guibutton>Up</guibutton></term> +<listitem><para><action>Moves the selected render mode one position up</action>.</para> +</listitem> +</varlistentry> + +<varlistentry><term><guibutton>Down</guibutton></term> +<listitem><para><action>Moves the selected render mode one position down</action>.</para> +</listitem> +</varlistentry> + +</variablelist> + +<para>The <guibutton>Edit</guibutton> Button opens the following +configuration dialog:</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="rendermodesize.png" format="PNG"/></imageobject> +<textobject><phrase>The render modes size tab</phrase></textobject> +</mediaobject> +</screenshot> + +<para>Each render mode has a description. You can enter any description, but it should reflect +the render mode's properties.</para> + +<para>In the <guilabel>Size</guilabel> tab you can enter the width and height of the rendered image. If +you want to render only a small part of the image, check the +<guilabel>Subselection</guilabel> check box and enter the part of the image +in the fields below.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="rendermodequality.png" format="PNG"/></imageobject> +<textobject><phrase>The render modes quality tab</phrase></textobject> +</mediaobject> +</screenshot> + +<para>In the <guilabel>Quality</guilabel> tab you can select various quality levels +for the rendered image.</para> + +<para>In the <guilabel>Quality</guilabel> combo box you can select the features +&Povray; uses while rendering. The possibilities range from a very simple coloring +and lighting model, to one which has complex diffuse inter-reflection lighting. +See the &Povray; user documentation +for a detailed description of the rendering features.</para> + +<para>If an image is rendered with only one sample per pixel, various errors can occur. +These images often have moiré or stepped effects in curves and lines, and +details can get lost if they are smaller in appearance then one pixel. +This effect is called <quote>aliasing</quote>.</para> + +<para>&Povray; uses a technique called <quote>anti-aliasing</quote> to reduce the impact +of these errors. In general images will look smoother with this feature.</para> + +<para>If you enable anti-aliasing, &Povray; will calculate and combine more then one +sample per pixel. This is called <quote>super-sampling</quote>.</para> + +<para>&Povray; supports two methods of super-sampling. The default +is an adaptive non-recursive method; <quote>adaptive</quote> +because the super-sampling +depends on the local neighborhood of the pixel. Not every +pixel is super-sampled with this method. The second method is an adaptive +recursive one; <quote>recursive</quote> because every pixel is divided and sub-divided +recursively, and <quote>adaptive</quote> because the recursion depth depends on the +computed color values.</para> + +<para>When you select the first method, povray traces one ray per pixel. If the +difference between its color value and that of its neighbor exceeds the given threshold, +both pixels are super-sampled by tracing a fixed number of additional rays. If you set +the depth value to 4, a 4x4 grid of additional points will be calculated, a depth +value of 5 will result in 5x5 (25) samples per pixel.</para> + +<para>The difference between two pixels is computed as follows: r<subscript>1</subscript>, +g<subscript>1</subscript> and b<subscript>1</subscript> are the +red, green and blue values of the first pixel; r<subscript>2</subscript>, +g<subscript>2</subscript> and b<subscript>2</subscript> are the red, +green and blue values of the second pixel. The difference is then: +</para> +<para>diff = abs(r<subscript>1</subscript>-r<subscript>2</subscript>) ++ abs(g<subscript>1</subscript>-g<subscript>2</subscript>) ++ abs(b<subscript>1</subscript>-b<subscript>2</subscript>)</para> + +<para>The recursive method starts with 4 samples per pixel. If the resulting color values +differ more than the given threshold, the pixel is sub-divided into 4 sub pixels that are +separately traced and tested for further subdivision. You can specify the maximum +recursive depth with the depth value.</para> + +<para>An additional method to reduce aliasing effects is to add noise to the +sampling process, called <quote>jittering</quote>. If you enable +jittering, &Povray; jitters the samples a tiny amount to reduce +regular patterns.</para> + +<para>The last quality setting is radiosity. Radiosity is an experimental +&Povray; feature that computes inter-diffuse light reflection. Be patient +when rendering a scene with this feature.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="rendermodeoutput.png" format="PNG"/></imageobject> +<textobject><phrase>The render modes output tab</phrase></textobject> +</mediaobject> +</screenshot> + +<para>In the last tab, you can configure whether or not the +alpha channel should be calculated by povray. +A pixel will then be transparent +if the corresponding ray did not hit a single object.</para> + +</sect3> + +<sect3 id="choosing-a-render-mode"> +<title>Choosing a render mode</title> + +<para>You can select the render mode in the combo box in the rendering toolbar.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="rendermodestoolbar.png" format="PNG"/></imageobject> +<textobject><phrase>The render modes toolbar</phrase></textobject> +</mediaobject> +</screenshot> + +</sect3> + +</sect2> + +<sect2 id="the-render-window"> +<title>The Render Window</title> + +<para>When you started to render a scene, this window will open:</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="renderwindow.png" format="PNG"/></imageobject> +<textobject><phrase>The render window</phrase></textobject> +</mediaobject> +</screenshot> + +<para>It shows the rendered image, the progress and the current rendering +speed.</para> + +<variablelist> + +<varlistentry><term><guibutton>Stop</guibutton></term> +<listitem><para><action>Terminates &Povray;</action>.</para> +</listitem> +</varlistentry> + +<varlistentry><term><guibutton>Suspend</guibutton></term> +<listitem><para><action>Suspends rendering</action>.</para> +</listitem> +</varlistentry> + +<varlistentry><term><guibutton>Resume</guibutton></term> +<listitem><para><action>Resumes rendering</action>.</para> +</listitem> +</varlistentry> + +<varlistentry><term><guibutton>Povray Output...</guibutton></term> +<listitem><para><action>Opens another window that displays the &Povray; +console output</action>. If &Povray; exits abnormally, you can find the reason +in that window.</para> +</listitem> +</varlistentry> + +<varlistentry><term><guibutton>Save...</guibutton></term> +<listitem><para><action>Lets you save the image when it is rendered.</action></para> +</listitem> +</varlistentry> + +<varlistentry><term><guibutton>Close</guibutton></term> +<listitem><para><action>Closes the render window</action>.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect2> + +</sect1> + +<sect1 id="exporting-and-importing-povray"> +<title>Exporting and Importing</title> + +<sect2 id="exporting-and-importing-a-whole-scene"> +<title>Exporting and Importing a Whole Scene</title> + +<para>You can export a scene to &Povray; with the +<menuchoice><guimenu>File</guimenu><guimenuitem>Export Povray...</guimenuitem></menuchoice> +menu entry.</para> +<para>The file save dialog will allow you to choose a name and +location to save the file.</para> +<note><para>&kpovmodeler; will automatically add the +<literal role="extension">.pov</literal> extension.</para></note> + +<para>To import a &Povray; scene select the +<menuchoice><guimenu>File</guimenu><guimenuitem>Import Povray...</guimenuitem></menuchoice> +menu item and choose a file in the file open dialog.</para> + +<note><para>Not the full &Povray; syntax is supported by &kpovmodeler; at the moment. +If there are errors or warnings during importing, a dialog will show up that +lists all messages.</para></note> + +<tip><para>If you want to import unsupported code to &kpovmodeler;, put +the source between the two special comments <quote>//*PMRawBegin</quote> +and <quote>//*PMRawEnd</quote>.</para></tip> + +</sect2> + +<sect2 id="exporting-and-importing-single-objects"> +<title>Exporting and Importing single Objects</title> + +<para>You can drag objects from the object tree to an editor +to export &Povray; code. This will insert the objects code into the current +text file in the editor. To import objects into the scene, simply select +the code in your editor and drag it on to the object tree.</para> +<para>You can use the copy and paste functionality of &kpovmodeler; +and your editor to exchange &Povray; code as well.</para> + +</sect2> + +</sect1> + +</chapter> + + +<chapter id="customizing"> +<title>Configuring &kpovmodeler;</title> + +<sect1 id="configure-povray-tab"> +<title>The <guilabel>Povray</guilabel> Tab</title> + +<sect2 id="configure-povray-command"> +<title><guilabel>Povray Command</guilabel></title> + +<para>The povray command is called when &kpovmodeler; renders a scene. Common commands +are <quote>povray</quote> or <quote>x-povray</quote>.</para> + +</sect2> + +<sect2 id="configure-povray-documentation"> +<title><guilabel>Povray User Documentation</guilabel></title> + +<para>If you press the <guibutton>Help</guibutton> button in the properties view, &kpovmodeler; +opens the &Povray; user documentation for the displayed object. Set here the path to your documentation +and your documentation version. Supported versions are 3.1g and 3.5.</para> + +</sect2> + +<sect2 id="configure-povray-library-paths"> +<title><guilabel>Library Paths</guilabel></title> + +<para>&Povray; searches for external files (height field data as example) in the &Povray; library paths. +If you refer to files not in the scene's folder, you have to add the folder to the list. If a file +exists in multiple library paths, that one in the first path is used.</para> +<para>You can change the order with the <guibutton>Up</guibutton> and +<guibutton>Down</guibutton> buttons.</para> + +</sect2> + +</sect1> + +<sect1 id="configure-graphical-view-tab"> +<title>The <guilabel>Graphical view</guilabel> Tab</title> + +<sect2 id="configure-colors"> +<title><guilabel>Colors</guilabel></title> + +<para>The color tab lets you configure the used colors for the graphical views.</para> + +<variablelist> + +<varlistentry> +<term><guilabel>Background:</guilabel></term> +<listitem><para>The background color.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Wire frame:</guilabel></term> +<listitem><para>The colors for wire frames. The second color is used if the object +is selected.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Control points:</guilabel></term> +<listitem><para>The color for control points. The second color is used if the control point +is selected.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Axes:</guilabel></term> +<listitem><para>The colors for the x-, y- and z-axis.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Field of view:</guilabel></term> +<listitem><para>The color for the field of view rectangle in the camera view +and the view type labels.</para></listitem> +</varlistentry> + +</variablelist> + +</sect2> + +<sect2 id="configure-grid"> +<title>The Grid</title> + +<para>This page lets you configure the grid in the wire frame views.</para> + +<sect3 id="configure-displayed-grid"> +<title><guilabel>Displayed Grid</guilabel></title> + +<variablelist> + +<varlistentry> +<term><guilabel>Color:</guilabel></term> +<listitem><para>The grid color.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Distance:</guilabel></term> +<listitem><para>The minimal distance of two grid lines.</para></listitem> +</varlistentry> + +</variablelist> + +</sect3> + +<sect3 id="configure-control-point-grid"> +<title><guilabel>Control Point Grid</guilabel></title> + +<para>You can snap control points to the grid with the context menu in +the wireframe views. You can configure the grid for translations, scales and rotations +separately here.</para> + +</sect3> + +</sect2> + +<sect2 id="configure-detail-levels"> +<title><guilabel>Objects</guilabel></title> + +<sect3 id="configure-object-subdivisions"> +<title><guilabel>Subdivisions</guilabel></title> + +<para>You can configure the detail levels for various objects here.</para> + +<para>Higher values lead to a finer wireframe and therefore to a better approximation for +the displayed objects, but slow down rendering. For some objects like the sphere you can +configure the detail level for two directions separately.</para> + +</sect3> + +<sect3 id="configure-object-sizes"> +<title><guilabel>Sizes</guilabel></title> + +<para>Lets you configure the sizes in which infinite objects are displayed in +the wireframe views.</para> + +</sect3> + +<sect3 id="configure-camera-views"> +<title><guilabel>Camera Views</guilabel></title> + +<para>If you check the <guilabel>High detail for enhanced projections</guilabel> check box, +all wire frame lines are subdivided further if the camera uses an enhanced projection. Enhanced +projections are all projections except the perspective and orthographic projections. This feature +greatly improves the approximation of these projections but slows down rendering.</para> + +</sect3> + +</sect2> + +</sect1> + +<sect1 id="configure-dialog-view-tab"> +<title>The <guilabel>Properties view</guilabel> Tab</title> + +<sect2 id="configure-texture-preview"> +<title><guilabel>Texture Preview</guilabel></title> + +<para>This page lets you configure the texture preview in the properties view.</para> + +<variablelist> + +<varlistentry> +<term><guilabel>Size:</guilabel></term> +<listitem><para>The preview image size.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Gamma:</guilabel></term> +<listitem><para>The gamma correction.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Rendered Objects</guilabel></term> +<listitem><para>Defines the small sample scene. At least one +object has to be selected.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Wall</guilabel></term> +<listitem><para>If the <guilabel>Enable wall</guilabel> check box is checked, a +wall will be rendered behind the objects. The wall is textured with a checker pattern with the +two configurable colors.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Floor</guilabel></term> +<listitem><para>If the <guilabel>Enable floor</guilabel> check box is checked, a +floor will be rendered below the objects. The floor is textured with a checker pattern with the +two configurable colors.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Anti-Aliasing</guilabel></term> +<listitem><para>If the <guilabel>Enable antialiasing</guilabel> check box is checked, +the non-recursive antialiasing method will be used for rendering the scene. You can configure the +depth and threshold values. See <link linkend="render-modes-configuration">render modes section</link> +for a detailed description of the parameters.</para></listitem> +</varlistentry> + +</variablelist> + +</sect2> + +</sect1> + +<sect1 id="configure-view-layout-tab"> +<title>The <guilabel>View Layout</guilabel> Tab</title> + +<para>In this page you can fine-tune existing view layouts or manually +create new ones. See section <link linkend="view-layouts">View Layouts</link> +how to create and save view layouts.</para> + +<sect2 id="configure-default-layout"> +<title>The default View Layout</title> + +<para>The combo box <guilabel>Default view layout:</guilabel> +lists all available view layouts. &kpovmodeler; uses the selected +view layout at program start.</para> + +</sect2> + +<sect2 id="configure-list-of-view-layouts"> +<title>List of View Layouts</title> + +<para>The list <guilabel>Available View Layouts</guilabel> +shows all available view layouts. You can add a new layout with the +<guibutton>Add</guibutton> button and remove the selected layout +with the <guibutton>Remove</guibutton> button.</para> +<para>The selected view layout is displayed in the box +<guilabel>View Layout</guilabel></para> +</sect2> + +<sect2 id="configure-view-layout-details"> +<title>View Layout Details</title> + +<para>Each view layout is identified by its name. The name has to +be unique and must not be empty.</para> + +<para>The list below the name displays all views for the selected +view layout. You can add new views with the +<guibutton>Add</guibutton> button and remove the selected view +with the <guibutton>Remove</guibutton> button.</para> + +<para>The attributes of the views are:</para> + +<variablelist> +<varlistentry> +<term><guilabel>Type:</guilabel></term> +<listitem> +<para>The view type. See <link linkend="the-interface">The &kpovmodeler; Interface</link> +for a description of each view type.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>3D view type:</guilabel></term> +<listitem> +<para>The projection for wire frame views. You can choose one of the six +orthographic projections or the camera mode.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Dock position:</guilabel></term> +<listitem> +<para>The position of the view. <guilabel>New Column</guilabel> will +create a new column to the right side of the previous views, +<guilabel>Below</guilabel> will dock the view below the previous view, +<guilabel>Tabbed</guilabel> will create a tabbed view together with the previous one +and <guilabel>Floating</guilabel> will not dock the view into the main +window but create a separate window.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Column width:</guilabel></term> +<listitem> +<para>The width of the column in percent of the main view width.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>View height:</guilabel></term> +<listitem> +<para>The view height in percent of the main view height.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Width:</guilabel> and <guilabel>Height:</guilabel></term> +<listitem> +<para>The size in pixels for floating views.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Position x:</guilabel> and <guilabel>y:</guilabel></term> +<listitem> +<para>The position on the desktop for floating views.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect2> + +</sect1> + +</chapter> + +<chapter id="basic-tutorial"> +<title>Basic Tutorial: Creating your first Scene</title> + +<para>OK, that's it. You have just installed &Povray; and &kpovmodeler;, +and now you already want to start without much knowledge of any of the two +softwares. Here we go now: If you follow the steps of this tutorial, +you'll be able to set the ultimate simple scene, very widespread among +the newbies: A sphere over a plane.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="tutorial01-final-render.png" format="PNG"/> +</imageobject> +</mediaobject> +</screenshot> + +<para>At any time you can render your scene using one of the following methods:</para> + +<para>Using the menu: +<menuchoice><guimenu>Display</guimenu><guimenuitem>Render</guimenuitem></menuchoice></para> +<para>Using the toolbar: Click on the +<inlinemediaobject> +<imageobject><imagedata fileref="cr22-action-pmrender.png" format="PNG"/></imageobject> +</inlinemediaobject> icon</para> + +<para>But you should carefully consider the following warnings before complaining +if all you get is a black screen. If this is the very first time you use a 3D software, +you should be aware of these golden rules:</para> + +<itemizedlist> +<listitem><para>If you set no camera, no rules apply to the render engine which can't +render a proper picture, ending in a black picture.</para></listitem> +<listitem><para>If you set no light system, all your scene is in the dark, +ending in a black picture.</para></listitem> +<listitem><para>The objects for which no material has been set won't show on the +rendered picture, ever.</para></listitem> +</itemizedlist> + +<sect1 id="basic-tutorial-step-1"> +<title>Step 1: Start &kpovmodeler;</title> + +<para>If you got everything installed fine, once &kpovmodeler; +is loaded, you discover the following default windows setting:</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="defaultviewlayout.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>Take a few minutes to explore the menus and icons available. +If you have time, please read the documentation in order to get a +fair idea of what you can expect from this piece of software.</para> + +<itemizedlist> +<listitem> +<para><link linkend="menu-reference">Menubars (1)</link></para> +</listitem> +<listitem> +<para>Toolbars (2)</para> +</listitem> +<listitem> +<para><link linkend="the-object-tree">The object tree (3)</link></para> +</listitem> +<listitem> +<para><link linkend="the-properties-view">The object properties +view (4)</link></para> +</listitem> +<listitem> +<para><link linkend="the-wireframe-views">The wireframe and camera views (5)</link></para> +</listitem> +</itemizedlist> + +<para>You will have to use each of them intensively from now on, so always keep them +and their use in mind.</para> + +<para>&kpovmodeler; starts with a simple scene. In order to follow this tutorial +you first have to remove all objects from the object tree. Select the scene +and choose the <menuchoice><guimenu>Edit</guimenu><guimenuitem>Delete</guimenuitem></menuchoice> menu +entry. You should now have an empty scene.</para> + +</sect1> + +<sect1 id="basic-tutorial-step-2"> +<title>Step 2: Setting the Camera</title> + +<para>First of all, we will set a camera. In order to do so, two convenient ways are available:</para> +<para>Using the menu: <menuchoice><guimenu>Insert</guimenu><guimenuitem>Camera</guimenuitem></menuchoice></para> +<para>Using the toolbar: Click on the +<inlinemediaobject> +<imageobject><imagedata fileref="cr22-action-pmcamera.png" format="PNG"/></imageobject> +</inlinemediaobject> icon</para> + +<para>The wireframe view shows how the camera is set regarding the whole scene we are creating. +In particular, we can now see something in the fourth wire frame view (right, bottom): +This is the view of the scene from the camera point of view. +This is what will be seen when you render the scene.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="tutorial01-camera-graphic.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>The object tree now shows a new entry, reading <quote>camera</quote>. If you click on it, +it affects the content of the object properties view, where various parameters +pertaining to the camera can be found. +Referring to the &Povray;'s documentation to learn more about these could be helpful.</para> + +<screenshot> +<mediaobject> +<imageobject><imagedata fileref="tutorial01-camera-dialog.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>We will change nothing to the basic settings of the camera, +this will be the scope of later tutorials, but please note that in the graphic view, +the camera has control points that let you control the point to which the camera points. +You just have to left-click on one handle and move it to an appropriate location.</para> + +</sect1> + +<sect1 id="basic-tutorial-step-3"> +<title>Step 3: Setting a Light</title> + +<para>The same way we have set a camera, we will now set a light system:</para> +<para>Using the menu: +<menuchoice><guimenu>Insert</guimenu><guimenuitem>Light</guimenuitem></menuchoice></para> +<para>Using the toolbar: Click on the +<inlinemediaobject> +<imageobject><imagedata fileref="cr22-action-pmlight.png" format="PNG"/></imageobject> +</inlinemediaobject> icon</para> + +<para>A new entry features now in the object tree. If you click on the light entry, +you see that the properties view changes in order to show the parameters available +to the lighting system. We will change some parameters in order to set the +light higher above the horizon (<guilabel>y</guilabel>=3), slightly on the right +(<guilabel>x</guilabel>=1) and in the foreground (<guilabel>z</guilabel>=1). +We can also rename the light system (<guilabel>Name</guilabel>=<quote>Main Light</quote>). +Change the values in the object properties view as follows:</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-light-dialog.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>Once you press the <guilabel>Apply</guilabel> button (or hit Enter), +the wire frame view and the object tree immediately +change in order to comply to these settings, and here is what now should see the camera.</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-light-graphic.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +</sect1> + +<sect1 id="basic-tutorial-step-4"> +<title>Step 4: Creating the Ground</title> +<para>There are many ways to create a ground for our scene. +One method could have been to insert a box object +(<menuchoice><guimenu>Insert</guimenu><guisubmenu>Finite Solid Primitives</guisubmenu> +<guimenuitem>Box</guimenuitem></menuchoice>) +and resize x to 100, y to 0 and z to 100, for example, but it's a cumbersome way to do this task.</para> + +<para>In fact, &kpovmodeler; offers you a convenient feature: You can create +a infinite plane that will feature the ground:</para> + +<para>Using the menu: +<menuchoice><guimenu>Insert</guimenu><guisubmenu>Infinite Solid Primitives</guisubmenu> +<guimenuitem>Plane</guimenuitem></menuchoice></para> +<para>Using the toolbar: Click on the +<inlinemediaobject><imageobject><imagedata fileref="cr22-action-pmplane.png" format="PNG"/></imageobject> +</inlinemediaobject> icon.</para> + +<para>Take a good custom: Having the plane selected in the object tree, please change its name +in something that is convenient to you and then press the <guilabel>Apply</guilabel> button (or hit Enter). +The object tree will update the name of the entry.</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-plane-dialog.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>The wire frame view also shows the plane now, even if it looks finite by now. +But don't worry, it will spread up to the horizon line when you'll render the scene!</para> + +<para>If you pay attention to the object tree, you will notice that the ground entry +can be expanded if you click on the <quote>plus</quote> icon standing just before the object. +Once done, you see various settings parented to the object. In this case, +there isn't much yet, apart from the standard options to any newly created object: +Scale, rotate, and translate. Selecting each of these will change the settings +available in the object properties view.</para> + +<screenshot> +<mediaobject> <imageobject><imagedata fileref="tutorial01-plane-tree-expanded.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>In this scene, we will arbitrary translate the ground one unit lower than the horizon line, +just for you to tweak some of these parameters. Select translate, and adjust the parameters as follow:</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-plane-tree-translate.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>Your scene should now look like the following picture.</para> +<screenshot><mediaobject><imageobject><imagedata fileref="tutorial01-plane-graphic.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +</sect1> + +<sect1 id="basic-tutorial-step-5"> +<title>Step 5: Setting a Material for the Ground</title> + +<para>Please select the ground prior to adding any material properties to it. +Many possibilities await us, but we will stay close to something quite easy for now.</para> + +<para>Using the menu: <menuchoice><guimenu>Insert</guimenu><guisubmenu>Textures</guisubmenu> +<guimenuitem>Pigment</guimenuitem></menuchoice></para> +<para>Using the toolbar: Click on the +<inlinemediaobject> +<imageobject><imagedata fileref="cr22-action-pmpigment.png" format="PNG"/></imageobject> +</inlinemediaobject> icon.</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="insertaspopup.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>In both cases, a popup window will prompt you to choose the way the object should be inserted. +Please choose <guilabel>First Child</guilabel>. The pigment now appears in the object tree. +You can change its name +in the properties view (<guilabel>Name</guilabel>=<quote>Ground Pigment</quote>), and click on the +<guibutton>Preview</guibutton> button +in order to see how the pigment looks like for now.</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-ground-pigment.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>Of course, the preview of the pigment shows nothing but a black matte material, +because we need to refine the pigment settings. Anyway, keep in mind you always +can preview the look and feel of your materials using the <guibutton>Preview</guibutton> button. +We will now define the pigment colors. Again, many possibilities await us, +but we will choose one of the most straightforward for now.</para> + +<para>Using the menu: <menuchoice><guimenu>Insert</guimenu><guisubmenu>Textures</guisubmenu> +<guimenuitem>Color List</guimenuitem></menuchoice></para> +<para>Using the toolbar: Click on the +<inlinemediaobject> +<imageobject><imagedata fileref="cr22-action-pmcolorlist.png" format="PNG"/></imageobject> +</inlinemediaobject> icon</para> + +<para>If no color shows on the box and the sphere of the preview, +click on the <guibutton>Apply</guibutton> button before calling for a preview.</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-ground-color-list.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>The ground material has been successfully set! If you render your picture now, using the +<inlinemediaobject> +<imageobject><imagedata fileref="cr22-action-pmrender.png" format="PNG"/></imageobject> +</inlinemediaobject> render icon, you should get the following result:</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-ground-wrong-colors-render.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>Of course, these colors are not the ones you could have expected. +We still have to see how we can customize them. In the case of the color list, +you have to define two new sets of attributes, called <guilabel>Solid Color</guilabel>. +In the Object Tree, make sure the color list entry is selected. +Then go through this two times (you can't do it more, anyway, +as the checkers color list can only afford the use of two solid colors):</para> + +<para>Using the menu: <menuchoice><guimenu>Insert</guimenu><guisubmenu>Textures</guisubmenu> +<guimenuitem>Solid Color</guimenuitem></menuchoice></para> + +<para>Using the toolbar: Click on the +<inlinemediaobject> +<imageobject><imagedata fileref="cr22-action-pmsolidcolor.png" format="PNG"/></imageobject> +</inlinemediaobject> icon.</para> + +<para>One after another, in the object tree, select the two solid colors +and change their color attributes in the object properties view:</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-ground-solid-color-1.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>...these attributes are for the first solid color (press <guibutton>Apply</guibutton>!),</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-ground-solid-color-2.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>... and these attributes are for the second (press <guibutton>Apply</guibutton> again!).</para> + +<para>Of course, a new rendering of our scene will prove that everything has been +taken into account accordingly:</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-ground-render.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +</sect1> + +<sect1 id="basic-tutorial-step-6"> +<title>Step 6: Creating the Sphere</title> + +<para>For this step, we should already be at ease, because we begin to understand +&kpovmodeler;'s general behavior. In the object tree, select the scene entry. +Creating the sphere is as easy as creating the ground:</para> + +<para>Using the menu: <menuchoice><guimenu>Insert</guimenu><guisubmenu>Finite Solid Primitives</guisubmenu> +<guimenuitem>Sphere</guimenuitem></menuchoice></para> + +<para>Using the toolbar: Click on the +<inlinemediaobject> +<imageobject><imagedata fileref="cr22-action-pmsphere.png" format="PNG"/></imageobject> +</inlinemediaobject> icon.</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="insertaspopup.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>As before, select <guilabel>First Child</guilabel> when asked for.</para> + +<para>The object properties view offers you immediately to change its settings, +which we'll do right now. By setting the <guilabel>Radius</guilabel> value to 1 +(don't forget to hit Enter or press <guibutton>Apply</guibutton>), +we make sure that the sphere will be in contact +with the ground. Otherwise, since we moved the ground one unit bottom, +the sphere will look like floating above the ground.</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-sphere-dialog.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>Of course, a rendering now will give a strange result: As already seen before, +the sphere appears with a black matte material. We will set a proper material in the following step.</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-sphere-render-nocolor.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +</sect1> + +<sect1 id="basic-tutorial-step-7"> +<title>Step 7: Setting a Material for the Sphere</title> + +<para>With the sphere selected, you can now set a material for it. As we already did for the ground, +let's give to the sphere a pigment color:</para> + +<para>Using the menu: <menuchoice><guimenu>Insert</guimenu><guisubmenu>Textures</guisubmenu> +<guimenuitem>Pigment</guimenuitem></menuchoice></para> + +<para>Using the toolbar: Click on the +<inlinemediaobject><imageobject><imagedata fileref="cr22-action-pmpigment.png" format="PNG"/></imageobject> +</inlinemediaobject> icon</para> + +<para>Select <guilabel>First Child</guilabel> and rename to <quote>Sphere pigment</quote>, for example. +With the sphere pigment entry selected, insert a solid color and set the parameters as follow:</para> + +<para>Using the menu: <menuchoice><guimenu>Insert</guimenu><guisubmenu>Textures</guisubmenu> +<guimenuitem>Solid Color</guimenuitem></menuchoice></para> + +<para>Using the toolbar: Click on the +<inlinemediaobject><imageobject><imagedata fileref="cr22-action-pmsolidcolor.png" format="PNG"/></imageobject> +</inlinemediaobject> icon</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-sphere-solid-color.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>You already can render the scene and get a first poor result:</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-sphere-render-solidcolor.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>But there are more interesting effects to achieve if we take time to set some finish attributes:</para> + +<para>Using the menu: <menuchoice><guimenu>Insert</guimenu><guisubmenu>Textures</guisubmenu> +<guimenuitem>Finish</guimenuitem></menuchoice></para> +<para>Using the toolbar: Click on the +<inlinemediaobject> +<imageobject><imagedata fileref="cr22-action-pmfinish.png" format="PNG"/></imageobject> +</inlinemediaobject> icon.</para> + +<para>Then change the values according to the following snapshot and press +<guibutton>Apply</guibutton> or hit Enter.</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-sphere-finish-dialog.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +<para>The <guilabel>Specular</guilabel> and <guilabel>Reflection</guilabel> +parameters give particularly good visual effects, +perfect for glass or chrome-like effects, even if <guilabel>Metallic</guilabel> +hasn't been chosen at this step:</para> + +<screenshot> +<mediaobject><imageobject><imagedata fileref="tutorial01-sphere-render-finish.png" format="PNG"/></imageobject> +</mediaobject> +</screenshot> + +</sect1> + +<sect1 id="basic-tutorial-conclusion"> +<title>Conclusion</title> + +<para>You should now have a fair glimpse of what is possible with kpovmodeler. +Hopefully, you are already skilled enough to do simple but beautiful things.</para> + +</sect1> +</chapter> + +<chapter id="concepts"> +<title>Basic Concepts</title> + +<sect1 id="what-is-raytracing"> +<title>What is Raytracing?</title> + +<para>Raytracing is a method of <link +linkend="gloss-rendering">rendering</link>, that is, creating a 2D +image out of a 3D scene or model.</para> + +<para>When raytracing a scene, the renderer shoots a hypothetical ray +from the perspective of the viewer (that is, from the camera you are +rendering the scene from) through each pixel in the scene. It +calculates how this ray reflects and refracts from objects, the visual +effects of the light sources in the scene and how atmospheric effects such +as fog affect it. The scene is built up, pixel by pixel.</para> + +<para>As you may imagine, without a camera, you cannot see anything - +the camera is your <quote>eye</quote> into the scene. Furthermore, +without any light, you still won't see anything - it would just be +dark. Obviously, any scene intended for raytracing must include +some light, an object of some kind and at least one camera.</para> + +</sect1> + +</chapter> + +<chapter id="objects-reference"> +<title>Objects Reference</title> + +<para>For a complete reference to all objects and attributes +see the &Povray; user documentation.</para> +</chapter> + + +<chapter id="menu-reference"> +<title>Menu Reference</title> + +<sect1 id="file-menu"> +<title>The <guimenu>File</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>New</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Create a new scene.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Import Povray...</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Import a &Povray; scene</action> created outside +&kpovmodeler;.</para> +<para>A normal file dialog will open, allowing you to choose your +file. Povray files usually have the extensions <literal +role="extension">*.pov</literal> or <literal +role="extension">*.inc</literal>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Open...</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Open a file.</action> The standard file dialog will +allow you to choose a file you have previously created with +&kpovmodeler;</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guisubmenu>Open Recent</guisubmenu> +</menuchoice></term> +<listitem> +<para><action>Open a file from a list of the files you have been +recently working on.</action></para> +<para>Whenever you open or create a new model, it is added to this +submenu, replacing the oldest entry in the list.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Save</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Save the currently active scene.</action></para> +<para>If you have already saved this model, it will be saved with the +same name. If it is a new file, you will be asked to name it and +choose a location to save it.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Save As...</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Save the currently active scene with a new +name.</action></para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Export Povray...</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Export the scene as a &Povray; file.</action></para> +<para>The file save dialog will allow you to choose a name and +location to save the file.</para> +<note><para>&kpovmodeler; will automatically add the +<literal role="extension">.pov</literal> extension.</para></note> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Revert</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Revert the scene to the state it was in the last time +you saved it.</action> Changes you have made since the last save will +be lost.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>P</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Print...</guimenuitem> +</menuchoice></term> +<listitem> +<para>Printing is not implemented yet.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>W</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Close</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Close the current scene</action> without closing +&kpovmodeler;</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Quit</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Quit</action> &kpovmodeler;. If you have any unsaved +changes, you will be given a chance to save them.</para> +</listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="edit-menu"> +<title>The <guimenu>Edit</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice><shortcut> +<keycombo action="simul">&Ctrl;<keycap>Z</keycap></keycombo> +</shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Undo</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Undo the last action you performed.</action></para> +<para>This menu item is not available unless you have unsaved changes +to the current scene.</para><!-- FIXME: is the number of items in the --> +<!-- undo history configurable? --> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;&Shift;<keycap>Z</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Redo</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Redo the last action you undid.</action> This menu item +is not available unless you have used +<menuchoice><guimenu>Edit</guimenu> +<guimenuitem>Undo</guimenuitem></menuchoice>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>X</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Cut</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Cut</action> the currently selected object(s) from the scene, +and store them on the clipboard.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>C</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Copy</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Copy</action> the currently selected object(s), and +store them on the clipboard.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>V</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Paste</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Paste</action> the contents of the clipboard.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Edit</guimenu> +<guimenuitem>Delete</guimenuitem> +</menuchoice></term> +<listitem> +<para><action>Delete</action> the currently selected object(s) from +the scene.</para> +<!-- FIXME: Shouldn't this be bound to the delete key? --> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="view-menu"> +<title>The <guimenu>View</guimenu> Menu</title> + +<variablelist> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>New Object Tree</guimenuitem> +</term> +<listitem> +<para><action>Create</action> a new <link linkend="the-object-tree">Object Tree</link>. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>New Properties View</guimenuitem> +</term> +<listitem> +<para><action>Create</action> a new <link linkend="the-properties-view">Object Properties View</link>. +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>New Top View</guimenuitem> +</term> +<listitem> +<para><action>Create</action> a new +<link linkend="orthographic-views">Orthographic Wireframe View</link> +from the top perspective.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>New Bottom View</guimenuitem> +</term> +<listitem> +<para><action>Create</action> a new +<link linkend="orthographic-views">Orthographic Wireframe View</link> +from the bottom perspective.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>New Left View</guimenuitem> +</term> +<listitem> +<para><action>Create</action> a new +<link linkend="orthographic-views">Orthographic Wireframe View</link> +from the left perspective.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>New Right View</guimenuitem> +</term> +<listitem> +<para><action>Create</action> a new +<link linkend="orthographic-views">Orthographic Wireframe View</link> +from the right perspective.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>New Front View</guimenuitem> +</term> +<listitem> +<para><action>Create</action> a new +<link linkend="orthographic-views">Orthographic Wireframe View</link> +from the front perspective.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>New Back View</guimenuitem> +</term> +<listitem> +<para><action>Create</action> a new +<link linkend="orthographic-views">Orthographic Wireframe View</link> +from the back perspective.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>New Camera View</guimenuitem> +</term> +<listitem> +<para><action>Create</action> a new +<link linkend="camera-view">Camera View</link>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>View Layouts</guimenuitem> +</term> +<listitem> +<para>Contains a list of all available view layouts. Switch to the +selected layout.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>Save View Layout...</guimenuitem> +</term> +<listitem> +<para>Save the current view layout. A dialog opens to choose a +name for a new layout or to overwrite an existing one.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>Render Modes...</guimenuitem> +</term> +<listitem> +<para>Open the +<link linkend="render-modes-configuration">render modes configuration</link> +dialog.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>Render</guimenuitem> +</term> +<listitem> +<para>Render the scene.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>Render Window</guimenuitem> +</term> +<listitem> +<para>Show the &Povray; render window.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guimenu>View</guimenu> +<guimenuitem>Redisplay</guimenuitem> +</term> +<listitem> +<para>Redisplay the wire frame views.</para> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="insert-menu"> +<title>The <guimenu>Insert</guimenu> Menu</title> + +<para>Creation actions for all supported &Povray; objects.</para> + +</sect1> + +<sect1 id="settings-menu"> +<title>The <guimenu>Settings</guimenu> Menu</title> +<para>This menu provides options for configuring &kpovmodeler;, changing its +appearance, shortcuts and standard behavior.</para> + +<variablelist> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show Statusbar</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggles the statusbar on/off.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show Path</guimenuitem> +</menuchoice></term> +<listitem><para><action>Show/hide the path in the caption.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Save settings</guimenuitem> +</menuchoice></term> +<listitem><para><action>Saves the current settings.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure Key Bindings...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a dialog for changing the key bindings.</action> +Using this option you can change the standard key shortcut for &kpovmodeler;'s commands +or create new ones.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure Toolbars...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a dialog for configuring the toolbar.</action> You +can add and remove toolbuttons for &kpovmodeler;'s commands with this +option.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure KPovModeler...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a dialog to configure &kpovmodeler;.</action></para> +</listitem> +</varlistentry> + +</variablelist> + +</sect1> + + +<sect1 id="help-menu"> +<title>The <guimenu>Help</guimenu> Menu</title> + +&help.menu.documentation; + +</sect1> + +</chapter> + +<chapter id="credits-and-licenses"> +<title>Credits and Licenses</title> + +<para>&kpovmodeler; copyright 2001,2002 the &kpovmodeler; +authors.</para> + +<itemizedlist> +<title>Authors</title> +<listitem> +<para>Andreas Zehender <email>zehender@kde.org</email></para> +</listitem> +<listitem> +<para>Luis Passos Carvalho +<email>lpassos@mail.telepac.pt</email></para> +</listitem> +<listitem> +<para>Phillippe Van Hecke +<email>lephiloux@tiscalinet.be</email></para> +</listitem> +<listitem> +<para>Leonardo Skorianez <email>skorianez@bol.com.br</email></para> +</listitem> +</itemizedlist> + +<para>Documentation copyright 2002 Lauri Watts +<email>lauri@kde.org</email></para> +<para>Documentation copyright 2002 Andreas Zehender +<email>zehender@kde.org</email></para> +<para>Documentation copyright 2002 Olivier Saraja +<email>olivier@linuxgraphic.org</email></para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL; +&underGPL; + +</chapter> + +<glossary id="glossary"> +<title>Glossary</title> + +<glossentry id="gloss-bump-map"> +<glossterm>Bump Map</glossterm> +<glossdef> +<para>A bump map is a way to simulate a rough surface, without having +to model every single <quote>bump</quote> on the surface, and without +changing the underlying geometric shape of the object itself.</para> +<para>It is common to use the same file as both a bump map and a <link +linkend="gloss-texture-map">texture map</link>.</para> +</glossdef> +</glossentry> + +<glossentry id="gloss-primitives"> +<glossterm>Primitives</glossterm> +<glossdef> +<para>Primitives are the basic geometric shapes that you can use as +<quote>building blocks</quote>. Most complex 3d models are created +from many dozens, or even hundreds, of these primitives, which are +then edited and manipulated to give a more realistic +appearance.</para> +</glossdef> +</glossentry> + +<glossentry id="gloss-rendering"> +<glossterm>Rendering</glossterm> +<glossdef> +<para>Not yet written</para> +</glossdef> +</glossentry> + +<glossentry id="gloss-texture-map"> +<glossterm>Texture Map</glossterm> +<glossdef> +<para>A texture map is a way of applying color to the surface of an +object on a pixel by pixel basis, by applying an image file as a color +map.</para> +<para>It is common to use the same image file as a <link +linkend="gloss-bump-map">bump map</link>.</para> +</glossdef> +</glossentry> + + + +</glossary> + +&documentation.index; + +<appendix id="installation"> +<title>Installation</title> + +&install.intro.documentation; +&install.compile.documentation; + +</appendix> + +</book> + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +// vim:ts=2:sw=2:tw=78:noet +--> diff --git a/doc/kpovmodeler/insertaspopup.png b/doc/kpovmodeler/insertaspopup.png Binary files differnew file mode 100644 index 00000000..523bd0cc --- /dev/null +++ b/doc/kpovmodeler/insertaspopup.png diff --git a/doc/kpovmodeler/objectpropertiesview.png b/doc/kpovmodeler/objectpropertiesview.png Binary files differnew file mode 100644 index 00000000..92d74a6f --- /dev/null +++ b/doc/kpovmodeler/objectpropertiesview.png diff --git a/doc/kpovmodeler/objecttree.png b/doc/kpovmodeler/objecttree.png Binary files differnew file mode 100644 index 00000000..1be38e65 --- /dev/null +++ b/doc/kpovmodeler/objecttree.png diff --git a/doc/kpovmodeler/rendericon.png b/doc/kpovmodeler/rendericon.png Binary files differnew file mode 100644 index 00000000..6aa2b69f --- /dev/null +++ b/doc/kpovmodeler/rendericon.png diff --git a/doc/kpovmodeler/rendermodeoutput.png b/doc/kpovmodeler/rendermodeoutput.png Binary files differnew file mode 100644 index 00000000..77146f2c --- /dev/null +++ b/doc/kpovmodeler/rendermodeoutput.png diff --git a/doc/kpovmodeler/rendermodequality.png b/doc/kpovmodeler/rendermodequality.png Binary files differnew file mode 100644 index 00000000..0b0fba3d --- /dev/null +++ b/doc/kpovmodeler/rendermodequality.png diff --git a/doc/kpovmodeler/rendermodesize.png b/doc/kpovmodeler/rendermodesize.png Binary files differnew file mode 100644 index 00000000..c593b1ed --- /dev/null +++ b/doc/kpovmodeler/rendermodesize.png diff --git a/doc/kpovmodeler/rendermodesselection.png b/doc/kpovmodeler/rendermodesselection.png Binary files differnew file mode 100644 index 00000000..4ea97325 --- /dev/null +++ b/doc/kpovmodeler/rendermodesselection.png diff --git a/doc/kpovmodeler/rendermodestoolbar.png b/doc/kpovmodeler/rendermodestoolbar.png Binary files differnew file mode 100644 index 00000000..8aee4f53 --- /dev/null +++ b/doc/kpovmodeler/rendermodestoolbar.png diff --git a/doc/kpovmodeler/rendersettingsicon.png b/doc/kpovmodeler/rendersettingsicon.png Binary files differnew file mode 100644 index 00000000..cb6b2e9a --- /dev/null +++ b/doc/kpovmodeler/rendersettingsicon.png diff --git a/doc/kpovmodeler/renderwindow.png b/doc/kpovmodeler/renderwindow.png Binary files differnew file mode 100644 index 00000000..25662a25 --- /dev/null +++ b/doc/kpovmodeler/renderwindow.png diff --git a/doc/kpovmodeler/texturepreview.png b/doc/kpovmodeler/texturepreview.png Binary files differnew file mode 100644 index 00000000..c9ca6060 --- /dev/null +++ b/doc/kpovmodeler/texturepreview.png diff --git a/doc/kpovmodeler/topview.png b/doc/kpovmodeler/topview.png Binary files differnew file mode 100644 index 00000000..faf76e20 --- /dev/null +++ b/doc/kpovmodeler/topview.png diff --git a/doc/kpovmodeler/tutorial01-camera-dialog.png b/doc/kpovmodeler/tutorial01-camera-dialog.png Binary files differnew file mode 100644 index 00000000..b3f9856f --- /dev/null +++ b/doc/kpovmodeler/tutorial01-camera-dialog.png diff --git a/doc/kpovmodeler/tutorial01-camera-graphic.png b/doc/kpovmodeler/tutorial01-camera-graphic.png Binary files differnew file mode 100644 index 00000000..12ca95bc --- /dev/null +++ b/doc/kpovmodeler/tutorial01-camera-graphic.png diff --git a/doc/kpovmodeler/tutorial01-final-render.png b/doc/kpovmodeler/tutorial01-final-render.png Binary files differnew file mode 100644 index 00000000..48a3a016 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-final-render.png diff --git a/doc/kpovmodeler/tutorial01-ground-color-list.png b/doc/kpovmodeler/tutorial01-ground-color-list.png Binary files differnew file mode 100644 index 00000000..00166661 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-ground-color-list.png diff --git a/doc/kpovmodeler/tutorial01-ground-pigment.png b/doc/kpovmodeler/tutorial01-ground-pigment.png Binary files differnew file mode 100644 index 00000000..33bc3206 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-ground-pigment.png diff --git a/doc/kpovmodeler/tutorial01-ground-render.png b/doc/kpovmodeler/tutorial01-ground-render.png Binary files differnew file mode 100644 index 00000000..18a4816c --- /dev/null +++ b/doc/kpovmodeler/tutorial01-ground-render.png diff --git a/doc/kpovmodeler/tutorial01-ground-solid-color-1.png b/doc/kpovmodeler/tutorial01-ground-solid-color-1.png Binary files differnew file mode 100644 index 00000000..a805904a --- /dev/null +++ b/doc/kpovmodeler/tutorial01-ground-solid-color-1.png diff --git a/doc/kpovmodeler/tutorial01-ground-solid-color-2.png b/doc/kpovmodeler/tutorial01-ground-solid-color-2.png Binary files differnew file mode 100644 index 00000000..870fd8d4 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-ground-solid-color-2.png diff --git a/doc/kpovmodeler/tutorial01-ground-wrong-colors-render.png b/doc/kpovmodeler/tutorial01-ground-wrong-colors-render.png Binary files differnew file mode 100644 index 00000000..36dfe296 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-ground-wrong-colors-render.png diff --git a/doc/kpovmodeler/tutorial01-light-dialog.png b/doc/kpovmodeler/tutorial01-light-dialog.png Binary files differnew file mode 100644 index 00000000..cb9adeaf --- /dev/null +++ b/doc/kpovmodeler/tutorial01-light-dialog.png diff --git a/doc/kpovmodeler/tutorial01-light-graphic.png b/doc/kpovmodeler/tutorial01-light-graphic.png Binary files differnew file mode 100644 index 00000000..ede4b9c7 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-light-graphic.png diff --git a/doc/kpovmodeler/tutorial01-plane-dialog.png b/doc/kpovmodeler/tutorial01-plane-dialog.png Binary files differnew file mode 100644 index 00000000..9a63936d --- /dev/null +++ b/doc/kpovmodeler/tutorial01-plane-dialog.png diff --git a/doc/kpovmodeler/tutorial01-plane-graphic.png b/doc/kpovmodeler/tutorial01-plane-graphic.png Binary files differnew file mode 100644 index 00000000..c2cf8163 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-plane-graphic.png diff --git a/doc/kpovmodeler/tutorial01-plane-tree-expanded.png b/doc/kpovmodeler/tutorial01-plane-tree-expanded.png Binary files differnew file mode 100644 index 00000000..024c969c --- /dev/null +++ b/doc/kpovmodeler/tutorial01-plane-tree-expanded.png diff --git a/doc/kpovmodeler/tutorial01-plane-tree-translate.png b/doc/kpovmodeler/tutorial01-plane-tree-translate.png Binary files differnew file mode 100644 index 00000000..84d377b1 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-plane-tree-translate.png diff --git a/doc/kpovmodeler/tutorial01-sphere-dialog.png b/doc/kpovmodeler/tutorial01-sphere-dialog.png Binary files differnew file mode 100644 index 00000000..2d17f4b6 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-sphere-dialog.png diff --git a/doc/kpovmodeler/tutorial01-sphere-finish-dialog.png b/doc/kpovmodeler/tutorial01-sphere-finish-dialog.png Binary files differnew file mode 100644 index 00000000..e72b9aa6 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-sphere-finish-dialog.png diff --git a/doc/kpovmodeler/tutorial01-sphere-render-finish.png b/doc/kpovmodeler/tutorial01-sphere-render-finish.png Binary files differnew file mode 100644 index 00000000..7861b608 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-sphere-render-finish.png diff --git a/doc/kpovmodeler/tutorial01-sphere-render-nocolor.png b/doc/kpovmodeler/tutorial01-sphere-render-nocolor.png Binary files differnew file mode 100644 index 00000000..72dffddb --- /dev/null +++ b/doc/kpovmodeler/tutorial01-sphere-render-nocolor.png diff --git a/doc/kpovmodeler/tutorial01-sphere-render-solidcolor.png b/doc/kpovmodeler/tutorial01-sphere-render-solidcolor.png Binary files differnew file mode 100644 index 00000000..b96ab37f --- /dev/null +++ b/doc/kpovmodeler/tutorial01-sphere-render-solidcolor.png diff --git a/doc/kpovmodeler/tutorial01-sphere-solid-color.png b/doc/kpovmodeler/tutorial01-sphere-solid-color.png Binary files differnew file mode 100644 index 00000000..52b03ff7 --- /dev/null +++ b/doc/kpovmodeler/tutorial01-sphere-solid-color.png diff --git a/doc/kruler/Makefile.am b/doc/kruler/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kruler/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kruler/index.docbook b/doc/kruler/index.docbook new file mode 100644 index 00000000..433b3cc9 --- /dev/null +++ b/doc/kruler/index.docbook @@ -0,0 +1,359 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kruler;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % English "INCLUDE" > <!-- change language only here --> + <!ENTITY % addindex "IGNORE"> +]> + +<book lang="&language;"> + +<bookinfo> +<title>The &kruler; Handbook</title> + +<authorgroup> +<author> +<firstname>Lauri</firstname> +<surname>Watts</surname> +<affiliation> +<address><email>&Lauri.Watts.mail;</email></address> +</affiliation> +</author> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> +</authorgroup> + +<legalnotice>&FDLNotice;</legalnotice> + +<copyright> +<year>2001</year> +<holder>&Lauri.Watts;</holder> +</copyright> + +<date>2005-12-10</date> +<releaseinfo>3.5</releaseinfo> + +<!-- Abstract about this handbook --> + +<abstract> +<para> +&kruler; can be used to measure objects on the screen. +</para> +</abstract> + +<keywordset> +<keyword>KDE</keyword> +<keyword>KRuler</keyword> +<keyword>kdegraphics</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> + +<para>&kruler; is a very simple application, with only one aim in life. To +measure distances on your screen.</para> + +<para>To start &kruler;, choose <menuchoice><guimenu>Graphics</guimenu> +<guisubmenu>More Applications</guisubmenu> +<guimenuitem>KDE Screen Ruler</guimenuitem></menuchoice> from your +<guimenu>K</guimenu> menu.</para> + +<para>Clicking with the &LMB; on the &kruler; will turn the cursor to a cross +with four arrows and enables you to drag &kruler; around the screen.</para> + +<para>When you move the mouse over &kruler;, your cursor will turn into an +elongated arrow, with a circle at one end. As you move the cursor, &kruler; will +display how far from the point marked <guilabel>0</guilabel> the circle on the +end of the cursor currently is. &kruler; will also display the +&HTML; color code of the color currently under the circle. +This is very useful for picking out colors from an image. If you move the +mouse far enough that the arrow cursor is no longer touching &kruler;, the +cursor will revert to normal, allowing you to carry on working with your other +applications.</para> + +<para>You can change the orientation using the context menu, described in the +next chapter.</para> + +</chapter> + +<chapter id="menu-reference"> +<title>Menu Reference</title> + +<para>Clicking with the &RMB; on the ruler will pop up a context menu, with the +following entries:</para> + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<guisubmenu>Orientation</guisubmenu> +</menuchoice> +</term> +<listitem> +<para>This submenu contains entries that allow you to change the orientation of +&kruler;</para> + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycap>N</keycap> +</shortcut> +<guisubmenu>Orientation</guisubmenu> +<guimenuitem>North</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Turns &kruler; so the ruler is horizontal, and the measurements are on the +top (North) of the ruler</para> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycap>E</keycap> +</shortcut> +<guisubmenu>Orientation</guisubmenu> +<guimenuitem>East</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Turns &kruler; so the ruler is vertical, and the measurements are on the +right (East) of the ruler</para> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycap>S</keycap> +</shortcut> +<guisubmenu>Orientation</guisubmenu> +<guimenuitem>South</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Turns &kruler; so the ruler is horizontal, and the measurements are on the +bottom (South) of the ruler</para> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycap>W</keycap> +</shortcut> +<guisubmenu>Orientation</guisubmenu> +<guimenuitem>West</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Turns &kruler; so the ruler is vertical, and the measurements are on the +left (West) of the ruler</para> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycap>R</keycap> +</shortcut> +<guisubmenu>Orientation</guisubmenu> +<guimenuitem>Turn Right</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Turns the ruler 90 Degrees to the right. For example, if it is oriented +South, it will rotate to be oriented West.</para> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycap>L</keycap> +</shortcut> +<guisubmenu>Orientation</guisubmenu> +<guimenuitem>Turn Left</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Turns the ruler 90 Degrees to the left. For example, if it is oriented +West, it will rotate to be oriented South.</para> +</listitem> +</varlistentry> +</variablelist> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<guisubmenu>Length</guisubmenu> +</menuchoice> +</term> +<listitem> +<para>This submenu contains entries that allow you to change the length of +&kruler;</para> +<variablelist> +<varlistentry> +<term> +<menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>S</keycap></keycombo> +</shortcut> +<guisubmenu>Length</guisubmenu> +<guimenuitem>Short</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Makes &kruler; short - about 385 pixels long.</para> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>M</keycap></keycombo> +</shortcut> +<guisubmenu>Length</guisubmenu> +<guimenuitem>Medium</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Makes &kruler; a medium length - about 640 pixels long.</para> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>T</keycap></keycombo> +</shortcut> +<guisubmenu>Length</guisubmenu> +<guimenuitem>Tall</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Makes &kruler; long - about 960 pixels in length.</para> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>F</keycap></keycombo> +</shortcut> +<guisubmenu>Length</guisubmenu> +<guimenuitem>Full Screen Width</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Makes &kruler; the same size as your screen width.</para> +</listitem> +</varlistentry> +</variablelist> +</listitem> +</varlistentry> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo> +</shortcut> +<guimenuitem>Choose Color...</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Displays the standard &kde; color picker dialog, where you can choose the +background color for &kruler;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul"><keycap>F</keycap></keycombo> +</shortcut> +<guimenuitem>Choose Font...</guimenuitem> +</menuchoice> +</term> +<listitem> +<para>Displays the standard &kde; font dialog where you can choose the font for +&kruler;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term> +<menuchoice> +<guisubmenu>Help</guisubmenu> +</menuchoice> +</term> +<listitem> +&help.menu.documentation; +</listitem> +</varlistentry> +</variablelist> + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo> +</shortcut> +<guimenuitem>Quit</guimenuitem> +</menuchoice> +</term> +<listitem> +<para><action>Quits</action> &kruler;</para> +</listitem> +</varlistentry> +</variablelist> + +</chapter> + +<chapter id="credits-and-license"> +<title>Credits and Licenses</title> + +<para>&kruler;</para> + +<para>Copyright 2000, 2001 Till Krech <email>till@snafu.de</email></para> + +<para>Thanks to Gunnstein Lye <email>gl@ez.no</email> for the initial port to +&kde; 2</para> + +<para>Documentation Copyright &Lauri.Watts; +&Lauri.Watts.mail;</para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL; +&underGPL; + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +&install.intro.documentation; + +&install.compile.documentation; + +</appendix> + +&documentation.index; +</book> +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes: nil +sgml-general-insert-case: lower +End: +--> + diff --git a/doc/ksnapshot/Makefile.am b/doc/ksnapshot/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/ksnapshot/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/ksnapshot/index.docbook b/doc/ksnapshot/index.docbook new file mode 100644 index 00000000..408ab80d --- /dev/null +++ b/doc/ksnapshot/index.docbook @@ -0,0 +1,535 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&ksnapshot;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE" > <!-- change language only here --> +]> + +<book lang="&language;"> + +<bookinfo> +<title>The &ksnapshot; Handbook</title> + +<authorgroup> +<author> +<firstname>Richard</firstname> +<othername>J.</othername> +<surname>Moore</surname> +<affiliation> +<address>&Richard.J.Moore.mail;</address> +</affiliation> +</author> + +<author> +<firstname>Robert</firstname> +<othername>L.</othername> +<surname>McCormick</surname> +<affiliation> +<address>&Robert.L.McCormick.mail;</address> +</affiliation> +</author> + +<author> +<firstname>Brad</firstname> +<surname>Hards</surname> +<affiliation> +<address>&Brad.Hards.mail;</address> +</affiliation> +</author> + +<othercredit role="reviewer"> +<firstname>Lauri</firstname> +<surname>Watts</surname> +<affiliation> +<address>&Lauri.Watts.mail;</address> +</affiliation> +<contrib>Reviewer</contrib> +</othercredit> + +<othercredit role="developer"> +<firstname>Richard</firstname> +<othername>J</othername> +<surname>Moore</surname> +<affiliation> +<address>&Richard.J.Moore.mail;</address> +</affiliation> +<contrib>Developer</contrib> +</othercredit> + +<othercredit role="developer"> +<firstname>Matthias</firstname> +<surname>Ettrich</surname> +<affiliation> +<address>&Matthias.Ettrich.mail;</address> +</affiliation> +<contrib>Developer</contrib> +</othercredit> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> +</authorgroup> + +<copyright> +<year>1997-2000</year> +<holder>&Richard.J.Moore;</holder> +</copyright> + +<copyright> +<year>2000</year> +<holder>&Matthias.Ettrich;</holder> +</copyright> + +<legalnotice>&FDLNotice;</legalnotice> + +<date>2006-07-05</date> +<releaseinfo>0.7</releaseinfo> + +<abstract> +<para>&ksnapshot; is a simple applet for taking screenshots. It is capable +of capturing images of the whole desktop, a single window, a section of a window or a selected +region. The images can then be saved in a variety of formats.</para> +</abstract> + +<keywordset> +<keyword>KDE</keyword> +<keyword>KSnapshot</keyword> +<keyword>kdegraphics</keyword> +<keyword>screen capture</keyword> +<keyword>screen grab</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> + +<para>&ksnapshot; is a simple applet for taking screenshots. It is capable +of capturing images of the whole desktop, a single window a section of a window or a selected +region. The images can then be saved in a variety of formats.</para> + +<para>Please report any problems or feature requests to the <ulink +url="http://bugs.kde.org/wizard.cgi">&kde; Bug Tracking System</ulink></para> + +</chapter> + +<chapter id="using-ksapshot"> +<title>Using &ksnapshot;</title> + +<para>This chapter describes the use of &ksnapshot; for capturing screen +images.</para> + +<sect1 id="starting"> +<title>Starting &ksnapshot;</title> + +<para>&ksnapshot; may be started by one of several ways as described +below.</para> + +<itemizedlist> +<listitem> +<para>You may start &ksnapshot; by selecting it from the <menuchoice> +<guimenu>K-Menu</guimenu><guisubmenu>Graphics</guisubmenu> +<guimenuitem>&ksnapshot; (Screen Capture Program)</guimenuitem></menuchoice>. +</para></listitem> +<listitem> +<para>You may start &ksnapshot; by entering the following at the command +prompt:</para> +<screen width="40"> +<prompt>%</prompt> <command>ksnapshot &</command> +</screen> +</listitem> +<listitem><para>The mini command line (invoked with +<keycombo action="simul">&Alt;<keycap>F2</keycap></keycombo>) may +also be used to start &ksnapshot;</para></listitem> +</itemizedlist> + +<para>Once &ksnapshot; starts, you will see a window like the following: +<mediaobject> +<imageobject> +<imagedata fileref="window.png" format="PNG"/> +</imageobject> +<textobject><phrase>&ksnapshot; Preview Window</phrase> +</textobject> +</mediaobject> +</para> + +</sect1> + +<sect1 id="taking-snapshot"> +<title>Taking A Snapshot</title> + +<para> &ksnapshot; grabs an image of your entire desktop immediately after it is +started, but before it displays itself on screen. This allows you to quickly +create full-desktop screenshot images.</para> + +<para>The snapshot taken by &ksnapshot; is displayed in the preview window, +which is located in the upper left of the &ksnapshot; application window. +Below is an example of the preview window from &ksnapshot;. Your preview +will differ depending on what you have displayed on the desktop.</para> + +<mediaobject> +<imageobject> +<imagedata fileref="preview.png" format="PNG"/> +</imageobject> +<textobject><phrase>&ksnapshot; Preview Window</phrase> +</textobject> +</mediaobject> + +<para>The snapshot can be saved by clicking on +the <guibutton>Save As...</guibutton> button. This opens the standard &kde; save dialog, +where you can choose the filename, the folder location, and the format that your snapshot +will be saved in. If multiple snapshots are taken, the +filename is automatically incremented to prevent you from overwriting previous +snapshots. You may however edit the filename to anything you wish, including the name +of a previously saved snapshot. </para> + +<para>To take a snapshot of a single window, select the <guilabel>Window +Under Cursor</guilabel> combo box entry (next to the <guilabel>Capture mode:</guilabel> +label), and then click on the <guibutton>New Snapshot</guibutton> button.</para> + +<para>Depending on your <guilabel>Snapshot delay:</guilabel> settings you +get either a cross as the mouse pointer (for <guilabel>No delay</guilabel>), +or a standard mouse cursor which you can use to work with a program until +the delay is over and a snapshot is taken.</para> + +<para>With <guilabel>No delay</guilabel>, the snapshot is taken immediately when you +click into a window.</para> + +<para>&ksnapshot; will display the new snapshot in the preview +area, at which time you can choose to save the new image (by pressing +<guibutton>Save As...</guibutton>) +or to grab a new one, by pressing the +<guibutton>New Snapshot</guibutton> button.</para> + +<para>To take a new snapshot of the entire desktop, select the +<guilabel>Full Screen</guilabel> combo box entry and then click on the +<guibutton>New Snapshot</guibutton> button. +&ksnapshot; will now capture the entire desktop if you press +<guibutton>New Snapshot</guibutton>.</para> + +<para>Similarly, to take a snapshot of a region, select the +<guilabel>Region</guilabel> combo box entry and set the +<guilabel>Snapshot delay</guilabel> to <guilabel>No delay</guilabel>, +and then click on the <guibutton>New Snapshot</guibutton> button. The +mouse cursor will then change into a cross, and you can then use the +mouse to select the region you want to capture. </para> + +<para>To take a new snapshot of a section of a window, select the +<guilabel>Section of Window</guilabel> combo box entry and then click on the +<guibutton>New Snapshot</guibutton> button. With <guilabel>No delay</guilabel> +you get a cross as the mouse pointer and you have to click once with the &LMB; into +the window. The section of the window under the mouse cursor is now highlighted +with a red border. Move the mouse to the wanted section and click the &LMB; +to capture the screenshot. +</para> + +</sect1> + +<sect1 id="additional-features"> +<title>Additional Features</title> + +<sect2 id="delay"> +<title>Snapshot Delay</title> + +<para>The <guilabel>Snapshot Delay:</guilabel> box allows you to enter an +arbitrary time delay, in seconds, between the time that you press the +<guibutton>New Snapshot</guibutton> button and the time that the snapshot is +taken.</para> + +<para>When a delay time has been set, you do not have to click the mouse +button to capture a screenshot. This enables you to open a drop down menu, +and take a picture of it.</para> + +</sect2> + +<sect2 id="window-decoration"> +<title>Exclude Window decorations</title> + +<para><guilabel>Include window decorations</guilabel> is enabled by default.</para> + +<para>When you only want to capture the application itself without the surrounding +window decoration, disable this option and take a new snapshot.</para> + +</sect2> + +<sect2 id="print-snapshot"> +<title>Print</title> + +<para>When you want to print your snapshot from the preview, just click +<guibutton>Print...</guibutton> and you get the standard &kde; Print dialog, from +where you can directly print your snapshot.</para> +</sect2> + +<sect2 id="copy-snapshot"> +<title>Copy to Clipboard</title> + +<para>When you want to edit your snapshot in a graphics application without saving +the snapshot, just click <guibutton>Copy to Clipboard</guibutton> and insert the image +into a viewer or graphics application.</para> +</sect2> + + +<sect2 id="bottom-buttons"> +<title>Buttons</title> + +<para>There are two further buttons located at the bottom of the +&ksnapshot; window. There function is described below.</para> + +<variablelist> +<varlistentry> +<term><guibutton>Help</guibutton></term> +<listitem><para>Gives you a menu where you can open the +<guimenuitem>&ksnapshot; Handbook</guimenuitem>, report a bug or +get some more information <guimenuitem>About &ksnapshot;</guimenuitem> +and <guimenuitem>About &kde;</guimenuitem>. +</para></listitem> +</varlistentry> + +<varlistentry> +<term><guibutton>Quit</guibutton></term> +<listitem><para>Quits the &ksnapshot; application.</para></listitem> +</varlistentry> +</variablelist> + +</sect2> +</sect1> +</chapter> + +<chapter id="dcop"> + +<title>&DCOP; Interface</title> + +<para>&ksnapshot; can be scripted using its &DCOP; interface. This +chapter explains the various &DCOP; calls that you can use, and +provides some examples of how you can use them.</para> + +<para>As with all &DCOP; calls, you need to specify the application +you want to interface with, and the particular interface. With &ksnapshot; +you need to identify which particular application, which is +<literal>ksnapshot-</literal> followed by the process number.</para> + +<para>To start &ksnapshot; and obtain the right argument, use +<command>dcopstart ksnapshot</command>, which returns the +argument (such as <computeroutput>ksnapshot-20594</computeroutput>) on +standard output.</para> + +<para>You can get a list of the available &DCOP; interfaces, use +the right arguments, as shown in this example: +<screen width="60"> +<prompt>$</prompt> <command>dcop `dcopstart ksnapshot` interface</command><computeroutput> +QCStringList interfaces() +QCStringList functions() +QString url() +void slotGrab() +void slotPrint() +void slotSave() +bool save(QString filename) +void slotSaveAs() +void slotCopy() +void setTime(int newTime) +int timeout() +void setURL(QString newURL) +void setGrabMode(int grab) +int grabMode() +void slotMovePointer(int x,int y) +void exit() +</computeroutput> +</screen> +</para> + +<para> +In the examples following, the process is always +<computeroutput>ksnapshot-23151</computeroutput>. +</para> + +<sect1 id="dcop-settings"> + +<title>&DCOP; Access to Settings</title> + +<para>For each of the settings that you can control with the +&GUI;, you can both obtain the current status of that setting, +and modify the setting, using &DCOP;. +</para> + +<para>You can obtain the current capture mode using +<literal>grabMode</literal>, as shown below: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface grabMode</command> +</screen> +This will return <computeroutput>0</computeroutput> for full-screen capture, +<computeroutput>1</computeroutput> for window capture, and <computeroutput>2</computeroutput> +for region capture. +</para> + +<para>You can set the capture mode using <literal>setGrabMode</literal>, +which requires an argument to identify the mode required (as for <literal>grabMode</literal>). +So you can set window capture mode (<command>1</command>), using: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface setGrabMode 1</command> +</screen> +</para> + +<para>You can obtain the current timeout setting (the <guilabel>Snapshot delay:</guilabel> +GUI item) using <literal>timeout</literal>, as shown below: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface timeout</command> +</screen> +This will return the timeout setting in seconds, or zero if there is no delay +(capture on click). +</para> + +<para>You can set the timeout using <literal>setTime</literal>, +which requires an argument to identify the timeout duration. So you can +set a delay of 4 seconds using: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface setTime 4</command> +</screen> +</para> + +<para>You can obtain the path that the snapshot will be saved to using +<literal>url</literal>, as shown below: +<screen width="60"> +<prompt>$</prompt><command>dcop ksnapshot-23151 interface url</command> +</screen> +This will return the filename, as a &URL; (eg as +<computeroutput>file:///home/bradh/test2.png</computeroutput>). +</para> + +<para>You can set the path using <literal>setURL</literal>, +which requires a string argument to identify the new path. So you can +set the path to <literal>file:///home/bradh/snapshot.jpg</literal> +using: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface setURL file:///home/bradh/snapshot.jpg</command> +</screen> +</para> + +</sect1> + +<sect1 id="dcop-snapshot"> +<title>Taking Screenshots with &DCOP;</title> + +<para> +The key to taking screenshots with &DCOP; is use of <literal>slotGrab</literal>, +as shown below: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface slotGrab</command> +</screen> +</para> + +<para> +This will take a snapshot using the current snapshot mode and timeout settings +(as described above). If you want to save the snapshot image, there are a +number of calls you can use. If you just want to save the image to the current +path (as returned by <literal>url</literal> or changed by +<literal>setURL</literal>), you can use <literal>slotSave</literal>, as shown +below: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface slotSave</command> +</screen> +</para> + +<para> +If you want the user to be able to specify a filename (and path), you can use +<literal>slotSaveAs</literal>, which will bring up a standard &kde; file +save dialog.</para> + +<para> +If you want to save the image to a different name (or path) without +changing the path with <literal>setURL</literal>, you can use +<literal>save</literal>, providing the &URL; to save to as an argument. So if you +want to save the snapshot to <filename>file:///tmp/tempshot.png</filename>, you +can do the following: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface save file:///tmp/tempshot.png</command> +</screen> +Note that this will return true if the snapshot was successfully saved, and false +otherwise. Also, you should be aware that if the file already exists, the user +will get a standard &kde; dialog that requires the user to decide whether to overwrite +or not. +</para> + +<para> +In addition to saving the snapshot, you can also copy it to the clipboard, using +<literal>slotCopy</literal>, as shown below: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface slotCopy</command> +</screen> +</para> + +<para> +If you need to select a window that may not be under the mouse cursor, you +can use <literal>slotMovePointer</literal>, passing the x position +(in screen pixels) and the y position (also in screen pixels) as arguments. +So to move the mouse to the top left hand corner of the screen (0,0), you +can do the following: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface slotMoveMouse 0 0</command> +</screen> +</para> +</sect1> + +<sect1 id="dcop-print"> +<title>Printing Screenshots with &DCOP;</title> + +<para> +You can print the current screenshot (which may or may not have been saved) +using <literal>printSlot</literal>, as shown below: +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface slotPrint</command> +</screen> +</para> + +<para> +Note that this will bring up the normal &kde; print dialog, which may require +user interaction. +</para> + +</sect1> + +<sect1 id="dcop-exit"> +<title>&DCOP; Application control</title> + +<para> +You can cause &ksnapshot; to exit by using <literal>exit</literal>, +as shown below. +<screen width="60"> +<prompt>$</prompt> <command>dcop ksnapshot-23151 interface exit</command> +</screen> +</para> + +</sect1> + +</chapter> + +<chapter id="credits"> + +<title>Credits and License</title> + +<para>Program copyright</para> +<itemizedlist> +<listitem><para>1997-2000 &Richard.J.Moore; &Richard.J.Moore.mail;</para></listitem> +<listitem><para>2000 &Matthias.Ettrich; &Matthias.Ettrich.mail;</para></listitem> +</itemizedlist> + +<para>Documentation based on the original, copyright 1997-2000 &Richard.J.Moore; +&Richard.J.Moore.mail;</para> +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL; +&underGPL; + +</chapter> + +&documentation.index; +</book> + +<!-- +Local Variables: +sgml-minimize-attributes: nil +sgml-general-insert-case: lower +End: +--> + + + + diff --git a/doc/ksnapshot/preview.png b/doc/ksnapshot/preview.png Binary files differnew file mode 100644 index 00000000..0ee37a41 --- /dev/null +++ b/doc/ksnapshot/preview.png diff --git a/doc/ksnapshot/window.png b/doc/ksnapshot/window.png Binary files differnew file mode 100644 index 00000000..c4e99de7 --- /dev/null +++ b/doc/ksnapshot/window.png diff --git a/doc/kuickshow/Makefile.am b/doc/kuickshow/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kuickshow/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kuickshow/index.docbook b/doc/kuickshow/index.docbook new file mode 100644 index 00000000..e454e2bf --- /dev/null +++ b/doc/kuickshow/index.docbook @@ -0,0 +1,1041 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kuickshow;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE"><!-- change language only here --> +]> + +<!-- The language must NOT be changed here. --> +<book lang="&language;"> + +<bookinfo> +<title>The &kuickshow; Handbook</title> + +<authorgroup> +<author> +<firstname>Carsten</firstname> +<surname>Pfeiffer</surname> +<affiliation> +<address>&Carsten.Pfeiffer.mail;</address> +</affiliation> +</author> +<!-- TRANS:ROLES_OF_TRANSLATORS --> +</authorgroup> + +<copyright> +<year>2001</year> +<holder>&Carsten.Pfeiffer;</holder> +</copyright> + +<legalnotice>&FDLNotice;</legalnotice> + +<date>2005-12-29</date> +<releaseinfo>0.8.7</releaseinfo> + +<!-- Abstract about this handbook --> + +<abstract> +<para> +&kuickshow; is a comfortable image browser/viewer. +</para> +</abstract> + +<keywordset> +<keyword>KDE</keyword> +<keyword>kdegraphics</keyword> +<keyword>kuickshow</keyword> +<keyword>image</keyword> +<keyword>viewer</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> + +<para> +&kuickshow; is a comfortable image browser/viewer. It displays a +filebrowser where you can select images which are then shown. +</para> + +<!-- LW: put a nice screenshot here --> + +<para>The following image formats are supported:</para> +<itemizedlist> +<listitem><para>jpg</para> +</listitem> +<listitem><para>gif</para> +</listitem> +<listitem><para>tiff</para> +</listitem> +<listitem><para>png</para> +</listitem> +<listitem><para>bmp</para> +</listitem> +<listitem><para>psd</para> +</listitem> +<listitem><para>xpm</para> +</listitem> +<listitem><para>ppm</para> +</listitem> +<listitem><para>pgm</para> +</listitem> +<listitem><para>pbm</para> +</listitem> +<listitem><para>pnm</para> +</listitem> +<listitem><para>eim</para> +</listitem> +<listitem><para>xcf</para> +</listitem> +</itemizedlist> + +<para>Images can be displayed either in their own window, as large as +the image, or fullscreen.</para> + +</chapter> + +<chapter id="using-kuickshow"> +<title>Using &kuickshow;</title> + +<para>Using &kuickshow; is very simple. The file browser lists files, +which you can select with a &LMB; click or the <keycap>Return</keycap> +key.</para> + +<screenshot> +<screeninfo>Here's a screenshot of &kuickshow;</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="screenshot.png" format="PNG"/> + </imageobject> + <imageobject> + <imagedata fileref="screenshot.eps" format="EPS"/> + </imageobject> + <textobject> + <phrase>Screenshot</phrase> + </textobject> + </mediaobject> +</screenshot> + + +<sect1 id="kuickshow-features"> +<title>More &kuickshow; features</title> + +<para>The options dialog makes available more possibilities:</para> + +<itemizedlist> +<listitem><para>Images can be automatically shrunk to fit onto the +screen, if they are larger.</para> +</listitem> +<listitem><para>You can configure whether images should show up in +their own window, or always use the same window.</para> +</listitem> +<listitem><para>You can set the delay time for a slide show.</para> +</listitem> +<listitem><para>You can tell the browser which file types to show.</para> +</listitem> +<listitem><para>You can tweak the speed/quality +ratio</para></listitem> +</itemizedlist> + +<para>If you are looking for a certain file, just enter the first few +characters of it's filename in the browser. A small edit window will +pop up in the bottom right corner. When a matching file is found, it +is highlighted. You can leave the edit window by pressing +<keycap>Return</keycap> or &Esc;.</para> + +</sect1> +</chapter> + +<chapter id="configuration-dialog"> +<title>The <guilabel>&kuickshow; Configuration</guilabel> +Dialog</title> + +<para>The <guilabel>&kuickshow; Configuration</guilabel> dialog +contains 5 tabs. Three of them, <link +linkend="general-options"><guilabel>General</guilabel></link>, <link +linkend="modifications-options"><guilabel>Modifications</guilabel></link> +and <link linkend="slideshow-options"><guilabel>Slideshow</guilabel></link> +configure the operation of &kuickshow;, and the other two, +<link linkend="shortcuts-options"><guilabel>Viewer Shortcuts</guilabel></link> +and <link linkend="shortcuts-options"><guilabel>Browser Shortcuts</guilabel></link> +allow you to personalize the shortcuts for the +respective windows.</para> + +<sect1 id="general-options"> +<title><guilabel>General</guilabel> Options</title> + +<para>The <guilabel>General</guilabel> contains the options to +configure and tune &kuickshow;.</para> + +<variablelist> +<varlistentry> +<term><guilabel>Fullscreen mode</guilabel></term> +<listitem> +<para>If this is selected, images open in full screen mode. If the +image is not large enough to fill the screen, the rest of the screen +is filled with the background color selected below. The default is +off.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Preload next image</guilabel></term> +<listitem> +<para>If this is selected, &kuickshow; will load the next image in the +folder, while you are looking at the current one. This reduces the +delay when you select the next image, and is especially useful for +slide shows.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Remember last folder</guilabel></term> +<listitem> +<para>If this is selected, &kuickshow; saves the name of the last folder on exit. +On next start &kuickshow; will open this folder in the browser window.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Background color:</guilabel></term> +<listitem> +<para>Click on the colored bar to select a background color. This is +used to fill the screen in fullscreen mode, or the window, if you have +resized it larger than the image.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Show only files with extension:</guilabel></term> +<listitem> +<para>You can configure &kuickshow; to only show you some of the file +types it is capable of.</para> +</listitem> +</varlistentry> + +</variablelist> + +<variablelist> +<title><guilabel>Quality/Speed</guilabel></title> +<varlistentry> +<term><guilabel>Fast rendering</guilabel></term> +<listitem><para><!-- LW: Uhm.. help? -->Render things fast.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Dither in HiColor (15/16bit) modes</guilabel></term> +<listitem><para><!-- LW: Maybe these should be on an advanced tab --> +<!-- Write an example what this does here --> +</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Dither in LowColor (<=8bit) modes</guilabel></term> +<listitem><para><!-- And here --> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Use own color palette</guilabel></term> +<listitem><para><!-- and this one --> +</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Fast palette remapping</guilabel></term> +<listitem> +<para><!-- and this one --> +</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Maximum cache size (MB):</guilabel></term> +<listitem> +<para><!-- and another --> +</para></listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="modifications-options"> +<title>The <guilabel>Modifications</guilabel> Tab</title> + +<para>Check <guilabel>Apply default image modifications</guilabel> to open an image +with these modifications in &kuickshow;.</para> + +<variablelist> +<title><guilabel>Scaling</guilabel></title> +<varlistentry> +<term><guilabel>Shrink image to screen size, if larger</guilabel></term> +<listitem> +<para>If this is selected, large images are displayed in maximized window. The default is +on.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Shrink image to screen size, if smaler, up to factor:</guilabel></term> +<listitem> +<para>If this is selected, &kuickshow; increases the magnification of small images up to +the selected factor.</para> +</listitem> +</varlistentry> + +</variablelist> + +<variablelist> +<title><guilabel>Geometry</guilabel></title> +<varlistentry> +<term><guilabel>Flip vertically</guilabel></term> +<listitem><para>Flips the image vertically.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Flip horizontally</guilabel></term> +<listitem><para>Flips the image horizontally. +</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Rotate image</guilabel></term> +<listitem><para>Rotates the image to 0, 90, 180 or 270 degrees. +</para> +</listitem> +</varlistentry> + +</variablelist> + +<variablelist> +<title><guilabel>Adjustments</guilabel></title> +<varlistentry> +<term><guilabel>Brightness:</guilabel></term> +<listitem><para>Lightens/darkens the image.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Contrast:</guilabel></term> +<listitem><para>Adds/Removes contrast.</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Gamma:</guilabel></term> +<listitem><para>More/less gamma. +</para> +</listitem> +</varlistentry> + +</variablelist> + +<para>A <guilabel>Preview</guilabel> of the <guilabel>Original</guilabel> +and <guilabel>Modified</guilabel> image is displayed below this options.</para> + +</sect1> + +<sect1 id="slideshow-options"> +<title>The <guilabel>Slideshow</guilabel> Tab</title> + +<variablelist> + +<varlistentry> +<term><guilabel>Switch to full-screen</guilabel></term> +<listitem> +<para>Indicates if &kuickshow; should switch to full-screen mode +when starting the slideshow. +</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Start with current image</guilabel></term> +<listitem> +<para>Indicates if the slideshow should start with the first +image in the folder or with the image which is selected. +</para></listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Delay between slides:</guilabel></term> +<listitem> +<para>The length of time between image changes during the slideshow. +You can use the slider, type a new value into the field, +or use the small arrows to increase or decrease the value. The +default is 3 seconds.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Iterations (0 = infinite):</guilabel></term> +<listitem> +<para>The amount of iterations. If set to 0 it will loop untill you +abort the slideshow. You can use the slider, type a new value into the +field, or use the small arrows to increase or decrease the value. The +default is 1.</para> +</listitem> +</varlistentry> + +</variablelist> +</sect1> + +<sect1 id="shortcuts-options"> +<title>The <guimenu>Shortcuts</guimenu> Tabs</title> +<para>Change the shortcuts for the different modes of &kuickshow; +in the <guilabel>Viewer Shortcuts</guilabel> and the <guilabel>Browser Shortcuts</guilabel> tabs.</para> +</sect1> + +</chapter> + +<chapter id="menus"> +<title>Menu Reference</title> + +<sect1 id="file-menu"> +<title>The <guimenu>File</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Open</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a new image</action> in &kuickshow;.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Show Image</guimenuitem> +</menuchoice></term> +<listitem><para><action>Displays </action> the selected image in a new image +window.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Show Image in Aktive Window</guimenuitem> +</menuchoice></term> +<listitem><para><action>Displays </action>the selected image in the active image +window.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Show Image in Fullscreen Mode</guimenuitem> +</menuchoice></term> +<listitem><para><action>Displays</action> the selected image in fullscreen mode. +</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycap>F2</keycap></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Start Slideshow</guimenuitem> +</menuchoice></term> +<listitem><para><action>Starts</action> a slideshow of the images in the folder.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>P</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Print Image...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Prints the image</action>.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>Q</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Quit</guimenuitem> +</menuchoice></term> +<listitem><para><action>Quits</action> &kuickshow;. If you have several +images windows open, all of them are closed.</para></listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="edit-menu"> +<title>The <guimenu>Edit</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice> +<shortcut><keycap>F10</keycap></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>New Folder...</guimenuitem></menuchoice> +</term> +<listitem> +<para><action>Create</action> a new folder.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +<keycap>&Shift;</keycap><keycap>Delete</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Delete</guimenuitem> +</menuchoice></term> +<listitem><para><action>Deletes</action> the current file. You will be asked to confirm the +action.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul"> +<keycap>&Alt;</keycap><keycap>Return</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Properties</guimenuitem> +</menuchoice></term> +<listitem><para><action>Displays</action> the properties of the current image file.</para></listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="view-menu"> +<title>The <guimenu>View</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice> +<shortcut><keycap>F6</keycap></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Short View</guimenuitem> +</menuchoice></term> +<listitem><para>If this option is selected, only the names of the files and folders will be shown.</para> +<para>Compare this to detailed view.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycap>F7</keycap></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Detailed View</guimenuitem> +</menuchoice></term> +<listitem><para>If this option is selected, the names, sizes, dates, permissions, file owners and group ownerships are shown.</para> +<para>Compare this to short view.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycap>F8</keycap></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Show Hidden Files</guimenuitem> +</menuchoice></term> +<listitem><para>This will toggle between revealing and hiding normally hidden files.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycap>F12</keycap></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Separate Folders</guimenuitem> +</menuchoice></term> +<listitem><para>Use this option to toggle between a 2 pane view of the file system (one pane for the folders +and one pane for the files) and a one pane view of the file system with folders and files.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>View</guimenu> +<guimenuitem>Large Icons</guimenuitem> +</menuchoice></term> +<listitem><para>Display the image files in the folder with large icons. +This item is only available in <guimenuitem>Short View</guimenuitem> mode.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>View</guimenu> +<guimenuitem>Small Icons</guimenuitem> +</menuchoice></term> +<listitem><para>Display the image files in the folder with small icons. +This item is only available in <guimenuitem>Short View</guimenuitem> mode.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>View</guimenu> +<guimenuitem>Thumbnail Previews</guimenuitem> +</menuchoice></term> +<listitem><para>Display a preview of the images in the folder. This item is only available in <guimenuitem>Short View</guimenuitem> mode.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>-</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Zoom Out</guimenuitem> +</menuchoice></term> +<listitem><para><action>Reduces the image size by ten percent</action>. Again +this refers to the <emphasis>current</emphasis> size of the +image.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>+</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Zoom In</guimenuitem> +</menuchoice></term> +<listitem><para><action>Enlarges the image by ten percent</action>. Notice that +this refers to the <emphasis>current</emphasis> size of the +picture.</para></listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="settings-menu"> +<title>The <guimenu>Settings</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure &kuickshow;...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a dialog for changing some options</action> as +described in the section <xref linkend="configuration-dialog"/></para> +</listitem> +</varlistentry> +</variablelist> +</sect1> + + +<sect1 id="help-menu"> +<title>The <guimenu>Help</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term> +<menuchoice> +<shortcut> +<keycombo action="simul"><keycap>F1</keycap></keycombo> +</shortcut> +<guimenu>Help</guimenu> +<guimenuitem>&kappname; Handbook</guimenuitem> +</menuchoice> +</term> +<listitem><para><action>Invokes the &kde; Help system</action> starting at the +&kappname; help pages. (this document).</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Help</guimenu> +<guimenuitem>Report Bug...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens the Bug report dialog</action> where you can +report a bug or request a <quote>wishlist</quote> feature.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Help</guimenu> +<guimenuitem>About &kappname;</guimenuitem> +</menuchoice></term> +<listitem><para><action>This will display version and author +information.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Help</guimenu> +<guimenuitem>About KDE</guimenuitem> +</menuchoice></term> +<listitem><para><action>This displays the &kde; version and other basic +information.</action></para></listitem> +</varlistentry> +</variablelist> + +</sect1> + +</chapter> + +<chapter id="commands"> +<title>Command Reference</title> + +<sect1 id="keybindings"> +<title>The Image Window</title> + +<para>All the shortcuts are configurable from the <link +linkend="configuration-dialog">Configuration Dialog</link>.</para> + +<table> +<title>Image Window Keyboard Shortcuts</title> +<tgroup cols="2"> +<thead> +<row> +<entry>Key</entry> +<entry>Action</entry> +</row> +</thead> +<tbody> +<row> +<entry><keycap>Page Down</keycap></entry> +<entry>Load the next image</entry> +</row> +<row> +<entry><keycap>Page Up</keycap></entry> +<entry>Load the previous image</entry> +</row> +<row> +<entry><keycap>Home</keycap></entry> +<entry>Loads the first image</entry> +</row> +<row> +<entry><keycap>End</keycap></entry> +<entry>Loads the last image</entry> +</row> +<row> +<entry><keycap>+</keycap></entry> +<entry>Zooms into the image</entry> +</row> +<row> +<entry><keycap>-</keycap></entry> +<entry>Zooms out of the image</entry> +</row> +<row> +<entry><keycap>*</keycap></entry> +<entry>Flips the image horizontally</entry> +</row> +<row> +<entry><keycap>/</keycap></entry> +<entry>Flips the image vertically</entry> +</row> +<row> +<entry><keycap>7</keycap></entry> +<entry>Rotates 270° clockwise (which is also 90° +counter-clockwise)</entry> +</row> +<row> +<entry><keycap>8</keycap></entry> +<entry>Rotates 90° clockwise</entry> +</row> +<row> +<entry><keycap>9</keycap></entry> +<entry>Rotates 180° clockwise</entry> +</row> +<row> +<entry><keycap>Arrow</keycap> keys</entry> +<entry>Move the image (or rather, you, the viewer,) if it is larger +than the screen</entry> +</row> +<row> +<entry><keycap>Return</keycap></entry> +<entry>Toggles between fullscreen and window mode</entry> +</row> +<row> +<entry><keycap>Space</keycap></entry> +<entry>Toggles the display of the browser</entry> +</row> +<row> +<entry>&Esc;</entry> +<entry>Closes the image window. This will close &kuickshow; entirely, +if you don't have a browser window open.</entry> +</row> +<row> +<entry><keycap>B</keycap>/<keycombo action="simul">&Shift;<keycap>B</keycap></keycombo></entry> +<entry>Lightens/darkens the image</entry> +</row> +<row> +<entry><keycap>C</keycap>/<keycombo action="simul">&Shift;<keycap>C</keycap></keycombo></entry> +<entry>Adds/Removes contrast</entry> +</row> +<row> +<entry><keycap>G</keycap>/<keycombo action="simul">&Shift;<keycap>G</keycap></keycombo></entry> +<entry>More/less <firstterm>gamma</firstterm></entry> +</row> +<row> +<entry><keycap>O</keycap></entry> +<entry>Shows the image in original size. This is only useful when you +have enabled automatic scaling.</entry> +</row> +<row> +<entry><keycap>Enter</keycap></entry> +<entry>Redisplays the image with the default settings and +size.</entry> +</row> +<row> +<entry><keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo></entry> +<entry>Opens the <guilabel>Save As</guilabel> dialog</entry> +</row> +<row> +<entry><keycap>Delete</keycap></entry> +<entry>Deletes the current image. You will be asked to confirm the +request.</entry> +</row> +<row> +<entry><keycombo action="simul">&Shift;<keycap>Delete</keycap></keycombo></entry> +<entry>Deletes the current image without asking for +confirmation</entry> +</row> +<row> +<entry><keycombo action="simul">&Alt;<keycap>Return</keycap></keycombo></entry> +<entry>Displays the properties of the image</entry> +</row> +<row> +<entry><keycap>F1</keycap></entry> +<entry>Opens the online help (this file)</entry> +</row> +<row> +<entry><keycombo action="simul">&Ctrl;<keycap>W</keycap></keycombo></entry> +<entry>Quits &kuickshow;</entry> +</row> +</tbody> +</tgroup> +</table> + +<table> +<title>Image Window Mouse Usage</title> +<tgroup cols="2"> +<thead> +<row> +<entry>Mouse button</entry> +<entry>Action</entry> +</row> +</thead> +<tbody> +<row> +<entry><mousebutton>Right</mousebutton> click</entry> +<entry>Opens the context menu, with several options</entry> +</row> +<row> +<entry><mousebutton>Left</mousebutton> drag</entry> +<entry>Moves the image, if it doesn't fit in the window.</entry> +</row> +<row> +<entry><keycombo action="simul">&Shift;<mousebutton>Left</mousebutton> +</keycombo> drag</entry> +<entry>Marks a rectangle you can zoom into.</entry> +</row> +<row> +<entry><mousebutton>Left</mousebutton> double click</entry> +<entry>Closes the current image</entry> +</row> +</tbody> +</tgroup> +</table> + +</sect1> + +<sect1 id="browser-window"> +<title>The Browser Window</title> + +<table> +<title>Browser Window Keybindings</title> +<tgroup cols="2"> +<thead> +<row> +<entry>Keybinding</entry> +<entry>Action</entry> +</row> +</thead> +<tbody> +<row> +<entry><keycap>Return</keycap></entry> +<entry>Enters a folder, or opens an image window, depending on the +item selected.</entry> +</row> +<row> +<entry><keycap>Page Down</keycap></entry> +<entry>Advances one page in the list of files</entry> +</row> +<row> +<entry><keycap>Page Up</keycap></entry> +<entry>Moves back up a page in the list of files</entry> +</row> +<row> +<entry><keycap>Home</keycap></entry> +<entry>Selects the first file or folder</entry> +</row> +<row> +<entry><keycap>End</keycap></entry> +<entry>Selects the last file or folder</entry> +</row> +<row> +<entry><keycap>Space</keycap></entry> +<entry>Toggles showing the browser, if an image window is open</entry> +</row> +<row> +<entry><keycap>any alpha-numeric character</keycap></entry> +<entry>Opens the edit field used for <quote>completion</quote>. Enter +the first characters of a filename to search for, and if found, the +file will be selected.</entry> +</row> +<row> +<entry><keycombo +action="simul">&Ctrl;<keycap>G</keycap></keycombo></entry> +<entry><quote>Go to</quote> — lets you enter a folder to go +to.</entry> +</row> +<row> +<entry><keycap>Delete</keycap></entry> +<entry>Deletes the current file. You will be asked to confirm the +action.</entry> +</row> +<row> +<entry><keycombo +action="simul">&Shift;<keycap>Delete</keycap></keycombo></entry> +<entry>Deletes the current file without asking for +confirmation.</entry> +</row> +<row> +<entry><keycap>F1</keycap></entry> +<entry>Opens the online help (this file)</entry> +</row> +<row> +<entry><keycombo +action="simul">&Ctrl;<keycap>Q</keycap></keycombo></entry> +<entry>Quits &kuickshow;</entry> +</row> +</tbody> +</tgroup> +</table> + +<table> +<title>Browser Window Mouse Usage</title> +<tgroup cols="2"> +<thead> +<row> +<entry>Mouse Usage</entry> +<entry>Action</entry> +</row> +</thead> +<tbody> +<row> +<entry><mousebutton>Left</mousebutton> click</entry> +<entry>Enter a folder, or select an image window.</entry> +</row> +<row> +<entry><mousebutton>Right</mousebutton> click</entry> +<entry>Opens a context menu, with several options.</entry> +</row> +<row> +<entry>Double click</entry> +<entry>Loads the selected image or enters the selected +folder</entry> +</row> +</tbody> +</tgroup> + +</table> + +</sect1> +</chapter> + +<chapter id="credits"> + +<!-- Include credits for the programmers, documentation writers, and +contributors here. The license for your software should then be included below +the credits with a reference to the appropriate license file included in the KDE +distribution. --> + +<title>Credits and License</title> + +<para> +&kuickshow; +</para> +<para> +Program copyright 1998-2002 &Carsten.Pfeiffer; &Carsten.Pfeiffer.mail; +</para> + +<para> +Documentation copyright 2001 &Carsten.Pfeiffer; &Carsten.Pfeiffer.mail; +</para> +<para>Converted to DocBook &XML; and extended by &Lauri.Watts; +&Lauri.Watts.mail;</para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL; <!-- FDL: do not remove --> + +&underGPL; <!-- GPL License --> + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +<sect1 id="getting-kuickshow"> +<title>How to obtain &kuickshow;</title> + +&install.intro.documentation; + +</sect1> + +<sect1 id="requirements"> +<title>Requirements</title> + +<para>To be written</para> +<!-- +List any special requirements for your application here. This should include: +.Libraries or other software that is not included in kdesupport, +kdelibs, or kdebase. +.Hardware requirements like amount of RAM, disk space, graphics card +capabilities, screen resolution, special expansion cards, etc. +.Operating systems the app will run on. If your app is designed only for a +specific OS, (you wrote a graphical LILO configurator for example) put this +information here. + + +<para> +In order to successfully use &kuickshow;, you need &kde; 1.1. Foobar.lib is +required in order to support the advanced &kuickshow; features. &kuickshow; uses +about 5 megs of memory to run, but this may vary depending on your +platform and configuration. +</para> + +<para> +All required libraries as well as &kuickshow; itself can be found +on <ulink url="ftp://ftp.kapp.org">The &kuickshow; home page</ulink>. +</para> +--> + +<!-- For a list of updates, you may refer to the application web site +or the ChangeLog file, or ... +<para> +You can find a list of changes at <ulink +url="http://apps.kde.org/kapp">http://apps.kde.org/kapp</ulink>. +</para>--> +</sect1> + +<sect1 id="compilation"> +<title>Compilation and Installation</title> + +&install.compile.documentation; + +</sect1> + +</appendix> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: +--> + diff --git a/doc/kuickshow/screenshot.png b/doc/kuickshow/screenshot.png Binary files differnew file mode 100644 index 00000000..a57bd4c7 --- /dev/null +++ b/doc/kuickshow/screenshot.png diff --git a/doc/kview/Makefile.am b/doc/kview/Makefile.am new file mode 100644 index 00000000..085981d9 --- /dev/null +++ b/doc/kview/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kview/index.docbook b/doc/kview/index.docbook new file mode 100644 index 00000000..e1ddbbdf --- /dev/null +++ b/doc/kview/index.docbook @@ -0,0 +1,835 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ + <!ENTITY kappname "&kview;"> + <!ENTITY package "kdegraphics"> + <!ENTITY % addindex "IGNORE"> + <!ENTITY % English "INCLUDE" > <!-- change language only here --> +]> + +<book lang="&language;"> + +<bookinfo> +<title>The &kview; Handbook</title> + +<authorgroup> +<author> +<firstname>Hauke</firstname> +<surname>Hildebrandt</surname> +<affiliation> +<address>&Hauke.Hildebrandt.mail;</address> +</affiliation> +</author> + +<othercredit role="developer"> +<firstname>Sirtaj</firstname> +<othername>Singh</othername> +<surname>Kang</surname> +<contrib>Developer</contrib> +</othercredit> + +<othercredit role="reviewer"> +<firstname>Lauri</firstname> +<surname>Watts</surname> +<affiliation><address>&Lauri.Watts.mail;</address></affiliation> +<contrib>Reviewer</contrib> +</othercredit> +<!-- TRANS:ROLES_OF_TRANSLATORS --> +</authorgroup> + + +<copyright> +<year>2001</year> +<holder>&Hauke.Hildebrandt;</holder> +</copyright> + +<legalnotice>&FDLNotice;</legalnotice> + +<date>2006-05-20</date> +<releaseinfo>3.5.2</releaseinfo> + +<abstract><para>&kview; is an image viewing program. It is small and fast and +has some simple image processing commands. You can work with many different +graphic file formats and convert your images to them. &kview; is not a +fully-fledged image processor but it is sufficient for many of your everyday +tasks.</para></abstract> + +<keywordset> +<keyword>KDE</keyword> +<keyword>kview</keyword> +<keyword>kdegraphics</keyword> +<keyword>image</keyword> +<keyword>graphic</keyword> +<keyword>viewer</keyword> +</keywordset> + +</bookinfo> + +<chapter id="introduction"> +<title>Introduction</title> + +<para>&kview; is an image viewer for the &kde; desktop. You can view +graphics of many different formats such as &PostScript;, +<acronym>TIFF</acronym> &etc; By saving your files in a different +format than the original you can easily convert images to other +graphics formats. In addition, &kview; provides some nice little +features for doing simple image processing, like stretching/shrinking, +rotation and applying effects. You can arrange your images in a little +slideshow.</para> + +</chapter> + +<chapter id="menus"> +<title>Menu Reference</title> + +<para>When you start &kview; you see the typical application layout: a +workspace containing your documents (images in this case), a menubar that +provides access to the various commands, a toolbar with shortcut buttons for +some of them and a status bar at the bottom to display status messages. When +you have the loaded an image into &kview;, there is also an additional +context menu available which is displayed by clicking your right mouse +button over the image. Below, all menu entries are explained in the order +that they appear in the menubar.</para> + +<sect1 id="file-menu"> +<title>The <guimenu>File</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Open...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a new image</action> in &kview;. The size of the +&kview; main window and the image after loading are determined by your +settings. If you open several images, only the last one is shown, but all of +them can be accessed using the image list.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Open Recent</guimenuitem> +</menuchoice></term> +<listitem><para><action>Displays a list of recently opened images.</action> +Selecting one from this list reopens the image.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>S</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Save</guimenuitem> +</menuchoice></term> +<listitem><para><action>Save the current image</action>.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>File</guimenu> +<guimenuitem>Save As</guimenuitem> +</menuchoice></term> +<listitem><para><action>Saves the image under a different name</action>. By +choosing a new file format you can convert the image to a different graphics +type.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<shortcut><keycombo action="simul">&Ctrl; +<keycap>P</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Print...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Prints the image</action>. In the standard &kde; print dialog +click the <guibutton>Options >></guibutton> button, go to the tab <guilabel>Image +Settings</guilabel>. Select <guilabel>Fit image to page size</guilabel> or +<guilabel>Center image on page</guilabel>.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo> +&Ctrl;<keycap>W</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Close</guimenuitem> +</menuchoice></term> +<listitem><para><action>Closes the currently displayed +image.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>Q</keycap></keycombo></shortcut> +<guimenu>File</guimenu> +<guimenuitem>Quit</guimenuitem> +</menuchoice></term> +<listitem><para><action>Quits</action> &kview;. If you have several &kview; +images open, all of them are closed.</para></listitem> +</varlistentry> + +</variablelist> + +</sect1> + +<sect1 id="edit-menu"> +<title>The <guimenu>Edit</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul">&Ctrl; +<keycap>C</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Copy</guimenuitem></menuchoice> +</term> +<listitem> +<para><action>Copies</action> the entire image or the selection to the clipboard.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul">&Ctrl; +<keycap>V</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Paste</guimenuitem></menuchoice> +</term> +<listitem> +<para><action>Paste</action> the contents of the clipboard as a new image (only available, if the clipboard contains a valid image).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycap>C</keycap></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Crop</guimenuitem> +</menuchoice></term> +<listitem> +<para>If you have selected any part of the image (by drawing a box around it +using your mouse) you can cut off all the rest around it by using this +option. Your image is effectively reduced to your selection.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycap>F5</keycap></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Reload</guimenuitem> +</menuchoice></term> +<listitem><para><action>Reloads</action> the image to its original state (right +after opening it).</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +<keycap>&Shift;</keycap><keycap>Delete</keycap></keycombo></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Delete</guimenuitem> +</menuchoice></term> +<listitem><para><action>Deletes</action> the image.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycap>V</keycap></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Flip</guimenuitem> +<guimenuitem>Vertical</guimenuitem> +</menuchoice></term> +<listitem><para><action>Flips the image along the +vertical</action>. Mathematically, this does a reflection along the image's +horizontal center line.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycap>H</keycap></shortcut> +<guimenu>Edit</guimenu> +<guimenuitem>Flip</guimenuitem> +<guimenuitem>Horizontal</guimenuitem> +</menuchoice></term> +<listitem><para><action>Flips the image along the +horizontal</action>. Mathematically, this does a reflection along the image's +vertical center line.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Edit</guimenu> +<guimenuitem>Rotate Counter-Clockwise</guimenuitem> +</menuchoice></term> +<listitem><para><action>Rotates the image by 90° in the counter-clockwise +direction</action>.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Edit</guimenu> +<guimenuitem>Rotate Clockwise</guimenuitem> +</menuchoice></term> +<listitem><para><action>Rotates the image by 90° in the clockwise +direction</action>.</para></listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="effects-menu"> +<title>The <guimenu>Effects</guimenu> Menu</title> + +<para>&kview; provides some functions for simple image processing:</para> + +<para>This menu item is only displayed in the menubar, if you choose the +application plugin effects in &kview;s configure dialog</para> + +<variablelist> +<varlistentry> +<term><menuchoice> +<guimenu>Effects</guimenu> +<guimenuitem>Gamma Correction...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Adjusts the gamma factor.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Effects</guimenu> +<guimenuitem>Blend Color...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Blends the image to selected color and opacity</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Effects</guimenu> +<guimenuitem>Change Intensity (Brightness)...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Changes the brightness of the image.</action> Enter the +new brightness in percent (with respect to the <emphasis>initial</emphasis> +value).</para></listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="view-menu"> +<title>The <guimenu>View</guimenu> Menu</title> + +<variablelist> +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>+</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Zoom In</guimenuitem> +</menuchoice></term> +<listitem><para><action>Enlarges the image by ten percent</action>. Notice that +this refers to the <emphasis>current</emphasis> size of the +picture.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>View</guimenu> +<guimenuitem>Zoom...</guimenuitem> +</menuchoice></term> +<listitem><para>Opens a list to <action>choose the zoom +factor</action>. This value is given in percent and always refers to the +<emphasis>initial</emphasis> size of the picture.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>-</keycap></keycombo></shortcut> +<guimenu>View</guimenu> +<guimenuitem>Zoom Out</guimenuitem> +</menuchoice></term> +<listitem><para><action>Reduces the image size by ten percent</action>. Again +this refers to the <emphasis>current</emphasis> size of the +image.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>View</guimenu><guimenuitem>Fit Image +to Window</guimenuitem></menuchoice></term> +<listitem><para><action>Maximizes the image size</action>. The image is scaled +to the window size, keeping the aspect +ratio.</para></listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="go-menu"> +<title>The <guimenu>Go</guimenu> Menu</title> + +<para>This item is only displayed in the menubar, if you choose the +application plugin presenter in &kview;s configure dialog</para> + +<variablelist> +<varlistentry> +<term><menuchoice> +<guimenu>Go</guimenu> +<guimenuitem>Image List...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Displays a list of the currently loaded images.</action> +You can flip through the images by either double-clicking on them or using the +<guibutton>Previous</guibutton> and <guibutton>Next</guibutton> +buttons. <guibutton>Shuffle</guibutton> rearranges the images in a random order. +Pressing +<guibutton>Start Slideshow</guibutton> will start the slideshow with the current +settings for the interval. In addition, you can save and load your image +list using the corresponding buttons. +<guilabel>Slideshow interval:</guilabel> <!--is guilabel correct? --> +Here you can change the interval between the different slides for the slideshow.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycap>S</keycap></shortcut> +<guimenu>Go</guimenu> +<guimenuitem>Start/Stop Slideshow</guimenuitem> +</menuchoice></term> +<listitem><para><action>Starts or stops the +slideshow.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Alt;<keysym>Left Arrow</keysym></keycombo></shortcut> +<guimenu>Go</guimenu> +<guimenuitem>Previous Image in List</guimenuitem> +</menuchoice></term> +<listitem><para><action>Switches to the previous image in the +list.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Alt;<keysym>Right Arrow</keysym></keycombo></shortcut> +<guimenu>Go</guimenu> +<guimenuitem>Next Image in List</guimenuitem></menuchoice></term> +<listitem><para><action>Switches to the next item in the +list.</action></para></listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="tools-menu"> +<title>The <guimenu>Tools</guimenu> Menu</title> + +<variablelist> + +<varlistentry> +<term><menuchoice> +<guimenu>Tools</guimenu> +<guimenuitem>Scan Image...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens</action> images from your scanner into &kview;. +This menu item is only displayed in the menubar, if you choose the +application plugin scanner in &kview;s configure dialog +</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Shift;<keysym>Left Arrow</keysym></keycombo></shortcut> +<guimenu>Tools</guimenu> +<guimenuitem>Back</guimenuitem> +</menuchoice></term> +<listitem><para><action>Switches to the previous image in the current +folder.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Shift;<keysym>Right Arrow</keysym></keycombo></shortcut> +<guimenu>Tools</guimenu> +<guimenuitem>Forward</guimenuitem> +</menuchoice></term> +<listitem><para><action>Switches to the next image in the current +folder.</action></para></listitem> +</varlistentry> +</variablelist> + +</sect1> + +<sect1 id="settings-menu"> +<title>The <guimenu>Settings</guimenu> Menu</title> +<para>This menu provides options for configuring &kview;, changing its +appearance, shortcuts and standard behavior.</para> + +<variablelist> +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul"> +&Ctrl;<keycap>M</keycap></keycombo></shortcut> +<guimenu>Settings</guimenu> +<guimenuitem>Show/Hide Menubar</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggles the menubar on/off.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><guimenu>Settings</guimenu> +<guisubmenu>Toolbars</guisubmenu> +<guimenuitem>Main Toolbar (KView)</guimenuitem> +</menuchoice></term> +<term><menuchoice><guimenu>Settings</guimenu> +<guisubmenu>Toolbars</guisubmenu> +<guimenuitem>Extra Toolbar (KView)</guimenuitem> +</menuchoice></term> +<listitem> +<para>Toggles the main toolbar and the extra toolbar on and off +respectively</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show/Hide Statusbar</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggles the status bar on/off.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Show/Hide Scrollbars</guimenuitem> +</menuchoice></term> +<listitem><para><action>Toggles the Scrollbars on/off.</action></para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice><shortcut><keycombo action="simul">&Ctrl; +<keycap>&Shift;</keycap><keycap>F</keycap></keycombo></shortcut> +<guimenu>Settings</guimenu> +<guimenuitem>Fullscreen Mode</guimenuitem></menuchoice> +</term> +<listitem> +<para>This option maximizes the &kview; window and the currently shown image so +you can have a closer look at it. Even the window decorations (titlebar &etc;) are +temporarily removed. Selecting this option once again switches back to normal +mode.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure Shortcuts...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a dialog for changing the key bindings.</action> +Using this option you can change the standard key shortcut for &kview;'s commands +or create new ones.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure Toolbars...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a dialog for configuring the toolbar.</action> You +can add and remove toolbuttons for &kview;'s commands with this +option.</para></listitem> +</varlistentry> + +<varlistentry> +<term><menuchoice> +<guimenu>Settings</guimenu> +<guimenuitem>Configure &kview;...</guimenuitem> +</menuchoice></term> +<listitem><para><action>Opens a dialog for changing some options</action> as +described in the section <xref linkend="kview-options"/></para> +</listitem> +</varlistentry> +</variablelist> +</sect1> + +<sect1 id="help-menu"> +<title>The <guimenu>Help</guimenu> Menu</title> + +&help.menu.documentation; + +</sect1> +</chapter> + +<chapter id="command-line"> +<title>Command Line Options</title> + +<para>&kview; can be started directly from a terminal like &konsole; or +<application>xterm</application>. Several command line options are +available.</para> + +<variablelist> +<varlistentry> +<term><command>kview</command> <option>--help</option></term> +<listitem><para>Lists the command line options (see below).</para></listitem> +</varlistentry> +<varlistentry> +<term><command>kview</command> <option>--help-qt</option></term> +<listitem><para>Shows the options specific to &Qt; (the &GUI; +library that &kde; is based on).</para></listitem> +</varlistentry> +<varlistentry> +<term><command>kview</command> <option>--help-kde</option></term> +<listitem><para>Shows the &kde;-specific options.</para></listitem> +</varlistentry> +<varlistentry> +<term><command>kview</command> <option>--help-all</option></term> +<listitem><para>Displays all command line options.</para></listitem> +</varlistentry> +<varlistentry> +<term><command>kview</command> <option>--author</option></term> +<listitem><para>You want to send your warm wishes and euphoric cheers to +someone? Here they are!</para></listitem> +</varlistentry> +<varlistentry> +<term><command>kview</command> <option>-v</option>, +<option>--version</option></term> +<listitem><para>Displays the version number of &kview; (and that of +&Qt;/&kde;).</para></listitem> +</varlistentry> +<varlistentry> +<term><command>kview</command> <option>--license</option></term> +<listitem><para>Shows under which licenses &kview; is being +published.</para></listitem> +</varlistentry> +</variablelist> +</chapter> + +<chapter id="kview-options"> +<title>&kview; Options</title> + +<sect1 id="kview-options-viewer"> +<title><guilabel>Viewer</guilabel></title> + +<para>This is the configuration for the part of &kview; that can be reused +by other applications (meaning that the settings will also affect the &kview; +part that gets embedded into &konqueror; or other applications).</para> + +<screenshot> +<screeninfo>&kview; viewer configuration dialog</screeninfo> +<mediaobject> +<imageobject><imagedata fileref="kview-viewer-configuration.png" format="PNG"/></imageobject> +<textobject><phrase>&kview; viewer configuration dialog</phrase></textobject> +</mediaobject> +</screenshot> + +<variablelist> +<title>General configuration options for KViewCanvas</title> +<varlistentry> +<term><guilabel>Use smooth scaling (high quality but +slower)</guilabel></term> +<listitem> +<para>As the option suggests, use a very high quality but relatively slow +method of scaling images.</para> +</listitem> +</varlistentry> +<varlistentry> +<term><guilabel>Keep aspect ratio</guilabel></term> +<listitem> +<para>If this is checked &kview; will always try to keep the aspect +ratio. That means if the width is scaled with a factor x, the height is +scaled with the same factor.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Center image</guilabel></term> +<listitem> +<para>If checked, the opened image will be displayed centered to the &kview; +window.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Background Color</guilabel></term> +<listitem> +<para>Opens a normal &kde; color picker dialog, where you can choose the +background color for the image</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Minimum width:</guilabel></term> +<listitem> +<para>The width of the image shown will not get smaller than the size you +enter here. A value of 10 would cause a 1x1 image to be stretched +horizontally by a factor of 10.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Maximum width:</guilabel></term> +<listitem> +<para>The width of the image shown will not get bigger than the size you +enter here. A value of 100 would cause a 1000x1000 image to be compressed +horizontally by a factor of 0.1.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Minimum height:</guilabel></term> +<listitem> +<para>The height of the image shown will not get smaller than the size you +enter here. A value of 10 would cause a 1x1 image to be stretched vertically +by a factor of 10. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Maximum height:</guilabel></term> +<listitem> +<para>The height of the image shown will not get bigger than the size you +enter here. A value of 100 would cause a 1000x1000 image to be compressed +vertically by a factor of 0.1. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Choose which blend effects should be used:</guilabel></term> +<listitem> +<para>Every effect selected may be used to create a transition effect +between the images. If you select multiple effects they will be chosen +randomly. +</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title><guilabel>Chooose and Configure Your Plugins</guilabel></title> +<varlistentry> +<term><guilabel>Browser</guilabel></term> +<listitem> +<para>Here you can enable/disable use of the browser &kview; plugin, which +enables you to browse through all the images in the current folder. +</para> +</listitem> +</varlistentry> +</variablelist> +</sect1> + +<sect1 id="kview-options-application"> +<title><guilabel>Application</guilabel></title> + +<para>Here you can set options that are special for the &kview; application +when running stand-alone. What you change in here will not affect other +applications.</para> + +<screenshot> +<screeninfo>&kview; application configuration dialog</screeninfo> +<mediaobject> +<imageobject><imagedata fileref="kview-application-configuration.png" format="PNG"/></imageobject> +<textobject><phrase>&kview; application configuration dialog</phrase></textobject> +</mediaobject> +</screenshot> + +<variablelist> +<title><guilabel>Application</guilabel></title> +<varlistentry> +<term><guilabel>Resizing</guilabel></term> +<listitem><para>This option determines if the window and/or the image will be +resized after loading a new picture into &kview;. With <guilabel>Only resize +window</guilabel> enabled, the &kview; window will be resized so that it snuggly +fits around the loaded image. Notice that this can reduce the main window almost +to a vertical arrangement of menu entries if you load a small button pixmap (you +can resize the window afterwards in the usual way, of course). If your image is +pretty large (in terms of pixels), sometimes the &kview; window is resized in +such a way that the caption bar completely moves off your screen. Similarly, +<guilabel>Resize image to fit window</guilabel> resizes the image to fit into the &kview; +workspace (keeping its aspect ratio intact). And with <guilabel>Don't +resize anything</guilabel> as your choice, both &kview; and your image keep their +size. With <guilabel>Best fit</guilabel> +&kview; will resize the window to fit the image. The image will never be +scaled up but if it is too large for the screen the image will be scaled down. +</para></listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title><guilabel>Plugins</guilabel></title> +<varlistentry> +<term><guilabel>Effects</guilabel></term> +<listitem> +<para>Provides some image effects (and adds an <guimenu>Effects</guimenu> to +the menubar to give you access to them).</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Presenter</guilabel></term> +<listitem> +<para>Creates an image list and enables you to create a slideshow.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term><guilabel>Scanner</guilabel></term> +<listitem> +<para>Adds <guimenu>Scan Image...</guimenu> to the <guimenu>Tools</guimenu> +menu to open images from your scanner into &kview;.</para> +</listitem> +</varlistentry> +</variablelist> +</sect1> + +</chapter> + +<chapter id="credits"> +<title>Credits and License</title> + +<para>&kview;</para> + +<para>Program copyright 1997-2001 Sirtaj S. Kang +&Sirtaj.Singh.Kang.mail;</para> +<para>KParts integration by &Simon.Hausmann; +<email>shaus@neuro2.med.uni-magdeburg.de</email></para> +<para>Maintainer: Matthias Kretz <email>kretz@kde.org</email></para> +<para>Documentation copyright 2001 &Hauke.Hildebrandt; +&Hauke.Hildebrandt.mail; +</para> + +<para>Documentation substantially updated by Burkhard Lück +<email>lueck@hube-lueck.de</email> in 2005 for &kde; 3.5</para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> +&underFDL; <!-- FDL: do not remove --> +&underGPL; <!-- GPL License --> + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +<sect1 id="getting-kview"> +<title>How to obtain &kview;</title> + +&install.intro.documentation; + +&install.compile.documentation; + +</sect1> + +<sect1 id="requirements"> +<title>Requirements</title> + +<para>Since &kview; is part of the &kde; desktop you need a working &kde; +installation to use it. However, some additional libraries are needed by &kview; +to use the various graphics file formats. For example, to handle the +<acronym>PNG</acronym> format &kview; needs the corresponding library +libpng. &kview; uses the libraries that are registered by +kdelibs/kimgio.</para> + +</sect1> + +</appendix> + +&documentation.index; +</book> +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes: nil +sgml-general-insert-case: lower +End: +--> diff --git a/doc/kview/kview-application-configuration.png b/doc/kview/kview-application-configuration.png Binary files differnew file mode 100644 index 00000000..0ba79356 --- /dev/null +++ b/doc/kview/kview-application-configuration.png diff --git a/doc/kview/kview-viewer-configuration.png b/doc/kview/kview-viewer-configuration.png Binary files differnew file mode 100644 index 00000000..f2e6d8c2 --- /dev/null +++ b/doc/kview/kview-viewer-configuration.png |